1. Dan Villiom Podlaski Christiansen
  2. LLVM

Commits

Show all
Author Commit Message Date Builds
Chris Lattner
testcase for br undef folding.
Chris Lattner
Teach jump threading some more simple tricks: 1) have it fold "br undef", which does occur with surprising frequency as jump threading iterates. 2) teach j-t to delete dead blocks. This removes the successor edges, reducing the in-edges of other blocks, allowing recursive simplification. 3) Fold things like: br COND, BBX, BBY BBX: br COND, BBZ, BBW which also happens because jump threading iterates.
Chris Lattner
third time is the charm.
Chris Lattner
fix assertion.
Chris Lattner
don't spew tons of stuff to the output. This testcase is *not* for loop deletion (it is for a ton of passes), which is very bad.
Chris Lattner
Rename DeleteBlockIfDead to DeleteDeadBlock and make it unconditionally delete the block. All likely clients will do the checking anyway.
Chris Lattner
Factor some code out of SimplifyCFG, forming a new DeleteBlockIfDead method.
Dan Gohman
Mark x86's V_SET0 and V_SETALLONES with isSimpleLoad, and teach X86's foldMemoryOperand how to "fold" them, by converting them into constant-pool loads. When they aren't folded, they use xorps/cmpeqd, but for example when register pressure is high, they may now be folded as memory operands, which reduces register pressure. Also, mark V_SET0 isAsCheapAsAMove so that two-address-elimination will remat it instead of copying zeros around (V_SETALLONES was already marked).
Bill Wendling
Change label to 'carry' for unsigned adds.
Dan Gohman
Add a sanity-check to tablegen to catch the case where isSimpleLoad is set but mayLoad is not set. Fix all the problems this turned up. Change code to not use isSimpleLoad instead of mayLoad unless it really wants isSimpleLoad.
Dan Gohman
Fix a missing #include.
Dan Gohman
Add an explicit keyword.
Dan Gohman
Replace a #include with a forward-declaration.
Dan Gohman
Fix this comment to reflect that it applies to types other than just i32.
Dan Gohman
Fix byval arguments in the fastcc calling convention. The fastcc convention delegates to the regular x86-32 convention which handles byval, but only after it handles a few cases, and it's necessary to handle byval before handling those cases. This fixes PR3122 (and rdar://6400815), llvm-gcc miscompiling LLVM.
Dan Gohman
Add nounwind attributes to this test.
Dale Johannesen
testcases for recent dag combiner changes
Chris Lattner
Fix isIntN to work with APInts > 64 bits. This method is only used by clang apparently.
Evan Cheng
Remove a (what appears to be) overly strict assertion. Here is what happened: 1. ppcf128 select is expanded to f64 select's. 2. f64 select operand 0 is an i1 truncate, it's promoted to i32 zero_extend. 3. f64 select is updated. It's changed back to a "NewNode" and being re-analyzed. 4. f64 select operands are being processed. Operand 0 is a "NewNode". It's being expunged out of ReplacedValues map. 5. ExpungeNode tries to remap f64 select and notice it's a "NewNode" and asse…
Dale Johannesen
Minor rewrite per review feedback.
Scott Michel
Non-functional change: make custom lowering for truncate stylistically consistent with the way it's generally done in other places.
Scott Michel
CellSPU: - Incorporate Tilmann Scheller's ISD::TRUNCATE custom lowering patch - Update SPU calling convention info, even if it's not used yet (but can be at some point or another) - Ensure that any-extended f32 loads are custom lowered, especially when they're promoted for use in printf.
Dan Gohman
Fix a typo in a comment.
Owen Anderson
Add support for folding spills into preceding defs when doing pre-alloc splitting.
Dale Johannesen
One more transformation.
Dale Johannesen
Make the code do what the comment says it does.
Chris Lattner
Comment typeo fix, thanks Duncan!
convert-repo
update tags
Tilmann Scheller
make it possible to custom lower TRUNCATE (needed for the CellSPU target)
Chris Lattner
Implement PRE of loads in the GVN pass with a pretty cheap and straight-forward implementation. This does not require any extra alias analysis queries beyond what we already do for non-local loads. Some programs really really like load PRE. For example, SPASS triggers this ~1000 times, ~300 times in 255.vortex, and ~1500 times on 403.gcc. The biggest limitation to the implementation is that it does not split critical edges. This is a huge killer on many programs and should be addressed after the initial patch is enabled by default. The implementation of this should incidentally speed up …
  1. Prev
  2. Next