Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit3be44e2

Browse files
authored
[TableGen] Add some -time-phases support in CodeGenRegisters (#149309)
1 parentd46de86 commit3be44e2

File tree

2 files changed

+12
-1
lines changed

2 files changed

+12
-1
lines changed

‎llvm/utils/TableGen/Common/CodeGenRegisters.cpp

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@
3030
#include"llvm/Support/raw_ostream.h"
3131
#include"llvm/TableGen/Error.h"
3232
#include"llvm/TableGen/Record.h"
33+
#include"llvm/TableGen/TGTimer.h"
3334
#include<algorithm>
3435
#include<cassert>
3536
#include<cstdint>
@@ -1130,7 +1131,7 @@ CodeGenRegisterCategory::CodeGenRegisterCategory(CodeGenRegBank &RegBank,
11301131

11311132
CodeGenRegBank::CodeGenRegBank(const RecordKeeper &Records,
11321133
const CodeGenHwModes &Modes)
1133-
: CGH(Modes) {
1134+
:Records(Records),CGH(Modes) {
11341135
// Configure register Sets to understand register classes and tuples.
11351136
Sets.addFieldExpander("RegisterClass","MemberList");
11361137
Sets.addFieldExpander("CalleeSavedRegs","SaveList");
@@ -2202,7 +2203,9 @@ void CodeGenRegBank::computeDerivedInfo() {
22022203

22032204
// Compute a weight for each register unit created during getSubRegs.
22042205
// This may create adopted register units (with unit # >= NumNativeRegUnits).
2206+
Records.getTimer().startTimer("Compute reg unit weights");
22052207
computeRegUnitWeights();
2208+
Records.getTimer().stopTimer();
22062209

22072210
// Compute a unique set of RegUnitSets. One for each RegClass and inferred
22082211
// supersets for the union of overlapping sets.
@@ -2446,6 +2449,8 @@ void CodeGenRegBank::computeInferredRegisterClasses() {
24462449
// and assigned EnumValues yet. That means getSubClasses(),
24472450
// getSuperClasses(), and hasSubClass() functions are defunct.
24482451

2452+
Records.getTimer().startTimer("Compute inferred register classes");
2453+
24492454
// Use one-before-the-end so it doesn't move forward when new elements are
24502455
// added.
24512456
auto FirstNewRC =std::prev(RegClasses.end());
@@ -2481,6 +2486,8 @@ void CodeGenRegBank::computeInferredRegisterClasses() {
24812486
}
24822487
}
24832488

2489+
Records.getTimer().startTimer("Extend super-register classes");
2490+
24842491
// Compute the transitive closure for super-register classes.
24852492
//
24862493
// By iterating over sub-register indices in topological order, we only ever
@@ -2491,6 +2498,8 @@ void CodeGenRegBank::computeInferredRegisterClasses() {
24912498
for (CodeGenRegisterClass &SubRC : RegClasses)
24922499
SubRC.extendSuperRegClasses(SubIdx);
24932500
}
2501+
2502+
Records.getTimer().stopTimer();
24942503
}
24952504

24962505
/// getRegisterClassForRegister - Find the register class that contains the

‎llvm/utils/TableGen/Common/CodeGenRegisters.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -607,6 +607,8 @@ typedef SmallVector<unsigned, 16> TopoSigId;
607607
// CodeGenRegBank - Represent a target's registers and the relations between
608608
// them.
609609
classCodeGenRegBank {
610+
const RecordKeeper &Records;
611+
610612
SetTheory Sets;
611613

612614
const CodeGenHwModes &CGH;

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp