| Commit message (Collapse) | Author | Age | Files | Lines |
| ... | |
| |
|
|
|
|
| |
named or numbered ValIDs.
llvm-svn: 35172
|
| |
|
|
|
|
|
|
|
|
| |
Radically simplify the SlotMachine. There is no need to keep Value planes
around any more. This change causes slot numbering to number all un-named,
non-void values starting at 0 and incrementing monotonically through the
function, regardless of type (including BasicBlocks). Getting slot numbers
is now a single lookup operation instead of a double lookup.
llvm-svn: 35171
|
| |
|
|
| |
llvm-svn: 35169
|
| |
|
|
| |
llvm-svn: 35165
|
| |
|
|
| |
llvm-svn: 35163
|
| |
|
|
|
|
| |
rematerializable. Only used for constant generation for now.
llvm-svn: 35162
|
| |
|
|
| |
llvm-svn: 35161
|
| |
|
|
| |
llvm-svn: 35160
|
| |
|
|
| |
llvm-svn: 35153
|
| |
|
|
| |
llvm-svn: 35152
|
| |
|
|
|
|
| |
implements Transforms/ScalarRepl/memset-aggregate-byte-leader.ll
llvm-svn: 35150
|
| |
|
|
| |
llvm-svn: 35146
|
| |
|
|
|
|
| |
Rearrange some code to simplify it now that shifts are binops
llvm-svn: 35145
|
| |
|
|
| |
llvm-svn: 35143
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
entry:
icmp ugt i32 %x, 4 ; <i1>:0 [#uses=1]
br i1 %0, label %cond_true, label %cond_false
cond_true: ; preds = %entry
%tmp1 = tail call i32 (...)* @bar( i32 12 ) ; <i32> [#uses=0]
ret void
cond_false: ; preds = %entry
switch i32 %x, label %cond_true15 [
i32 4, label %cond_true3
i32 3, label %cond_true7
i32 2, label %cond_true11
i32 0, label %cond_false17
]
...
llvm-svn: 35142
|
| |
|
|
|
|
| |
- Use distance to closest use to determine whether to abort coalescing.
llvm-svn: 35141
|
| |
|
|
| |
llvm-svn: 35140
|
| |
|
|
|
|
| |
Add some more micro-optimizations: x * 0 = 0, a - x = a --> x = 0.
llvm-svn: 35138
|
| |
|
|
| |
llvm-svn: 35137
|
| |
|
|
| |
llvm-svn: 35135
|
| |
|
|
|
|
|
|
|
|
|
|
| |
to be really bad. Once they are joined they are not broken apart. Also, physical
intervals cannot be spilled!
Added a heuristic as a workaround for this. Be careful coalescing with a
physical register if the virtual register uses are "far". Check if there are
uses in the same loop as the source (copy instruction). Check if it is in the
loop preheader, etc.
llvm-svn: 35134
|
| |
|
|
| |
llvm-svn: 35133
|
| |
|
|
|
|
| |
in that BB.
llvm-svn: 35132
|
| |
|
|
| |
llvm-svn: 35129
|
| |
|
|
|
|
| |
Fix MultiSource/Applications/aha test.
llvm-svn: 35128
|
| |
|
|
| |
llvm-svn: 35127
|
| |
|
|
| |
llvm-svn: 35126
|
| |
|
|
| |
llvm-svn: 35125
|
| |
|
|
|
|
|
| |
computation used as GEP indexes and if the expression can be folded into
target addressing mode of GEP load / store use types.
llvm-svn: 35123
|
| |
|
|
| |
llvm-svn: 35122
|
| |
|
|
|
|
| |
folded into target addressing mode for the given type.
llvm-svn: 35121
|
| |
|
|
|
|
|
|
|
|
| |
Add new micro-optimizations.
Add icmp predicate snuggling. Given %x ULT 4, "icmp ugt %x, 2" becomes
"icmp eq %x, 3". This doesn't apply in any non-trivial cases yet due to missing
support for NE values in ValueRanges.
llvm-svn: 35119
|
| |
|
|
| |
llvm-svn: 35118
|
| |
|
|
| |
llvm-svn: 35117
|
| |
|
|
|
|
|
|
|
|
| |
it as a late BURR scheduling tie-breaker.
Intuitively, it's good to push down instructions whose results are liveout so
their long live ranges won't conflict with other values which are needed inside
the BB. Further prioritize liveout instructions by the number of operands which
are calculated within the BB.
llvm-svn: 35109
|
| |
|
|
| |
llvm-svn: 35108
|
| |
|
|
| |
llvm-svn: 35107
|
| |
|
|
| |
llvm-svn: 35105
|
| |
|
|
| |
llvm-svn: 35104
|
| |
|
|
| |
llvm-svn: 35097
|
| |
|
|
| |
llvm-svn: 35096
|
| |
|
|
| |
llvm-svn: 35095
|
| |
|
|
| |
llvm-svn: 35094
|
| |
|
|
| |
llvm-svn: 35093
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
e.g.
t1 = op t2, c1
t3 = op t4, c2
and the following instructions are both ready.
t2 = op c3
t4 = op c4
Then schedule t2 = op first.
i.e.
t4 = op c4
t2 = op c3
t1 = op t2, c1
t3 = op t4, c2
This creates more short live intervals which work better with the register
allocator.
llvm-svn: 35089
|
| |
|
|
| |
llvm-svn: 35088
|
| |
|
|
| |
llvm-svn: 35087
|
| |
|
|
| |
llvm-svn: 35086
|
| |
|
|
| |
llvm-svn: 35083
|
| |
|
|
|
|
| |
Fix PR1244 and Transforms/InstCombine/2007-03-13-CompareMerge.ll
llvm-svn: 35082
|