- Jun 22, 2010
-
-
Dan Gohman authored
into a utility routine, teach it how to update MachineLoopInfo, and make use of it in MachineLICM to split critical edges on demand. llvm-svn: 106555
-
Jakob Stoklund Olesen authored
Measurements show that it does not speed up coalescing, so there is no reason the keep the added complexity around. Also clean out some unused methods and static functions. llvm-svn: 106548
-
Dan Gohman authored
llvm-svn: 106542
-
Dan Gohman authored
kill and dead flags will end up on. llvm-svn: 106520
-
Devang Patel authored
getNamedMetadata(). llvm-svn: 106518
-
-
Devang Patel authored
llvm-svn: 106516
-
Devang Patel authored
llvm-svn: 106515
-
Dan Gohman authored
in addition to the kill flags. llvm-svn: 106512
-
Dan Gohman authored
opportunities. For example, this lets it emit this: movq (%rax), %rcx addq %rdx, %rcx instead of this: movq %rdx, %rcx addq (%rax), %rcx in the case where %rdx has subsequent uses. It's the same number of instructions, and usually the same encoding size on x86, but it appears faster, and in general, it may allow better scheduling for the load. llvm-svn: 106493
-
- Jun 21, 2010
-
-
Dan Gohman authored
SmallVector, and other SmallVector simplifications. llvm-svn: 106452
-
Dan Gohman authored
llvm-svn: 106423
-
Dan Gohman authored
Split the code for materializing a value out of SelectionDAGBuilder::getValue into a helper function, so that it can be used in other ways. Add a new getNonRegisterValue function which uses it, for use in code which doesn't want a CopyFromReg even when FuncMap.ValueMap already has an entry for it. llvm-svn: 106422
-
Dan Gohman authored
llvm-svn: 106415
-
Dan Gohman authored
the LocalValueMap, to make it more flexible when fast-isel isn't proceding straight top-down. llvm-svn: 106414
-
- Jun 19, 2010
-
-
Bob Wilson authored
llvm-svn: 106383
-
Dan Gohman authored
on calls and similar instructions. llvm-svn: 106353
-
Jakob Stoklund Olesen authored
the inserted INSERT_SUBREGs after us. llvm-svn: 106345
-
Evan Cheng authored
- This fixed a number of bugs in if-converter, tail merging, and post-allocation scheduler. If-converter now runs branch folding / tail merging first to maximize if-conversion opportunities. - Also changed the t2IT instruction slightly. It now defines the ITSTATE register which is read by instructions in the IT block. - Added Thumb2 specific hazard recognizer to ensure the scheduler doesn't change the instruction ordering in the IT block (since IT mask has been finalized). It also ensures no other instructions can be scheduled between instructions in the IT block. This is not yet enabled. llvm-svn: 106344
-
Jim Grosbach authored
llvm-svn: 106342
-
Jakob Stoklund Olesen authored
instructions, but it doesn't really understand live ranges, so the first INSERT_SUBREG uses an implicitly defined register. Fix it in LiveVariableAnalysis by adding the <undef> flag. llvm-svn: 106333
-
Evan Cheng authored
llvm-svn: 106330
-
Evan Cheng authored
llvm-svn: 106324
-
- Jun 18, 2010
-
-
Evan Cheng authored
Teach iff-converter to properly count # of dups. It was not skipping over dbg_value's which resulted in non-duplicated instructions being deleted. rdar://8104384. llvm-svn: 106323
-
Jim Grosbach authored
entries used by llvm-gcc. *_[U]MIN and such can be added later if needed. This enables the front ends to simplify handling of the atomic intrinsics by removing the target-specific decision about which targets can handle the intrinsics. llvm-svn: 106321
-
Dan Gohman authored
std::vector. llvm-svn: 106298
-
Dan Gohman authored
MachineRegisterInfo doesn't have to confusingly allocate an extra entry. llvm-svn: 106296
-
Bob Wilson authored
so when IfConverter::CopyAndPredicateBlock checks to see if it should ignore an instruction because it is a branch, it should not check if the branch is predicated. This case (when IgnoreBr is true) is only relevant from IfConvertTriangle, where new branches are inserted after the block has been copied and predicated. If the original branch is not removed, we end up with multiple conditional branches (possibly conflicting) at the end of the block. Aside from any immediate errors resulting from that, this confuses the AnalyzeBranch functions so that the branches are not analyzable. That in turn causes the IfConverter to think that the "Simple" pattern can be applied, and things go downhill fast because the "Simple" pattern does _not_ apply if the block can fall through. This is pretty fragile. If there are other degenerate cases where AnalyzeBranch fails, but where the block may still fall through, the IfConverter should not perform its "Simple" if-conversion. But, I don't know how to do that with the current AnalyzeBranch interface, so for now, the best thing seems to be to avoid creating branches that AnalyzeBranch cannot handle. Evan, please review! llvm-svn: 106291
-
Dan Gohman authored
llvm-svn: 106287
-
Dan Gohman authored
llvm-svn: 106286
-
Dan Gohman authored
switch from this: if (TimePassesIsEnabled) { NamedRegionTimer T(Name, GroupName); do_something(); } else { do_something(); // duplicate the code, this time without a timer! } to this: { NamedRegionTimer T(Name, GroupName, TimePassesIsEnabled); do_something(); } llvm-svn: 106285
-
Dan Gohman authored
the old one. llvm-svn: 106284
-
Dan Gohman authored
Don't replace the old DbgInfo with a new one when clear() on the old one is sufficient. llvm-svn: 106283
-
Dan Gohman authored
SDNode *, since it doesn't care about the ResNo value. llvm-svn: 106282
-
Dan Gohman authored
llvm-svn: 106279
-
Dan Gohman authored
llvm-svn: 106278
-
Dan Gohman authored
which is faster, simpler, and less surprising. llvm-svn: 106263
-
Dan Gohman authored
llvm-svn: 106256
-
Stuart Hastings authored
addresses a longstanding deficiency noted in many FIXMEs scattered across all the targets. This effectively moves the problem up one level, replacing eleven FIXMEs in the targets with eight FIXMEs in CodeGen, plus one path through FastISel where we actually supply a DebugLoc, fixing Radar 7421831. llvm-svn: 106243
-
- Jun 17, 2010
-
-
Jim Grosbach authored
for correctness' sake, it should be there. llvm-svn: 106229
-