| Commit message (Collapse) | Author | Age | Files | Lines | |
|---|---|---|---|---|---|
| * | There is no need to force DebugLoc on a PHI at this point. | Devang Patel | 2011-05-16 | 1 | -2/+0 |
| | | | | | llvm-svn: 131427 | ||||
| * | Preserve debug info for unused zero extended boolean argument. | Devang Patel | 2011-05-16 | 1 | -4/+13 |
| | | | | | | | Radar 9422775. llvm-svn: 131422 | ||||
| * | SimplifyCFG: Use ComputeMaskedBits to prune dead cases from switch instructions. | Benjamin Kramer | 2011-05-14 | 1 | -1/+36 |
| | | | | | llvm-svn: 131345 | ||||
| * | Set debug location for new PHI nodes created in exit block. | Devang Patel | 2011-05-04 | 1 | -0/+2 |
| | | | | | llvm-svn: 130894 | ||||
| * | Scanning entire basic block may be too expensive in terms of compile time. ↵ | Devang Patel | 2011-05-02 | 1 | -6/+4 |
| | | | | | | | Instead, just use whatever location info first non-phi instruction has. llvm-svn: 130729 | ||||
| * | Assing line number info to new PHIs created by SSA updater. | Devang Patel | 2011-04-29 | 2 | -0/+17 |
| | | | | | llvm-svn: 130551 | ||||
| * | SimplifyCFG: Expose phi node folding cost threshold as command line parameter | Peter Collingbourne | 2011-04-29 | 1 | -1/+6 |
| | | | | | llvm-svn: 130528 | ||||
| * | SimplifyCFG: Add CostRemaining parameter to DominatesMergePoint | Peter Collingbourne | 2011-04-29 | 1 | -9/+38 |
| | | | | | llvm-svn: 130527 | ||||
| * | SimplifyCFG: Add Trunc, ZExt and SExt to the list of cheap instructions for ↵ | Peter Collingbourne | 2011-04-29 | 1 | -0/+3 |
| | | | | | | | phi node folding llvm-svn: 130526 | ||||
| * | Remove DbgDeclare only if all uses are converted. | Devang Patel | 2011-04-28 | 1 | -1/+5 |
| | | | | | llvm-svn: 130431 | ||||
| * | Remove unused STL header includes. | Jay Foad | 2011-04-23 | 1 | -1/+0 |
| | | | | | llvm-svn: 130068 | ||||
| * | PR9214: Convert Metadata API to use ArrayRef. | Jay Foad | 2011-04-21 | 2 | -3/+3 |
| | | | | | llvm-svn: 129932 | ||||
| * | Trivial simplification. | Jay Foad | 2011-04-19 | 1 | -2/+1 |
| | | | | | llvm-svn: 129759 | ||||
| * | Fix a ton of comment typos found by codespell. Patch by | Chris Lattner | 2011-04-15 | 5 | -5/+5 |
| | | | | | | | Luis Felipe Strano Moraes! llvm-svn: 129558 | ||||
| * | rework FoldBranchToCommonDest to exit earlier when there is a bonus | Chris Lattner | 2011-04-14 | 1 | -39/+30 |
| | | | | | | | | | | | | | instruction around, reducing work. Greatly simplify handling of debug instructions. There is no need to build up a vector of them and then move them into the one predecessor if we're processing a block. Instead just rescan the block and *copy* them into the pred. If a block gets merged into multiple preds, this will retain more debug info. llvm-svn: 129502 | ||||
| * | comment cleanup, use moveBefore instead of removeFromParent+insertBefore. | Chris Lattner | 2011-04-11 | 1 | -9/+5 |
| | | | | | llvm-svn: 129319 | ||||
| * | Don't include Operator.h from InstrTypes.h. | Jay Foad | 2011-04-11 | 2 | -0/+2 |
| | | | | | llvm-svn: 129271 | ||||
| * | Do not let debug info interfer with branch folding. | Devang Patel | 2011-04-07 | 1 | -0/+6 |
| | | | | | llvm-svn: 129114 | ||||
| * | While hoisting common code from if/else, hoist debug info intrinsics if they ↵ | Devang Patel | 2011-04-07 | 1 | -8/+18 |
| | | | | | | | match. llvm-svn: 129078 | ||||
| * | Simplify. isIdenticalToWhenDefined() checks opcode. | Devang Patel | 2011-04-07 | 1 | -4/+2 |
| | | | | | llvm-svn: 129041 | ||||
| * | While folding branch to a common destination into a predecessor, copy dbg ↵ | Devang Patel | 2011-04-06 | 1 | -4/+17 |
| | | | | | | | values also. llvm-svn: 129035 | ||||
| * | Attempt to fix breakage from r128782 reported by Francois Pichet on | Eli Friedman | 2011-04-04 | 1 | -0/+3 |
| | | | | | | | | llvm-commits. (Not sure why it only breaks on Windows; maybe it has something to do with the iterator representation...) llvm-svn: 128802 | ||||
| * | PR9446: RecursivelyDeleteTriviallyDeadInstructions can delete the instruction | Eli Friedman | 2011-04-02 | 1 | -1/+4 |
| | | | | | | | | | | | | after the given instruction; make sure to handle that case correctly. (It's difficult to trigger; the included testcase involves a dead block, but I don't think that's a requirement.) While I'm here, get rid of the unnecessary warning about SimplifyInstructionsInBlock, since it should work correctly as far as I know. llvm-svn: 128782 | ||||
| * | Remove PHINode::reserveOperandSpace(). Instead, add a parameter to | Jay Foad | 2011-03-30 | 10 | -24/+18 |
| | | | | | | | PHINode::Create() giving the (known or expected) number of operands. llvm-svn: 128537 | ||||
| * | (Almost) always call reserveOperandSpace() on newly created PHINodes. | Jay Foad | 2011-03-30 | 6 | -4/+11 |
| | | | | | llvm-svn: 128535 | ||||
| * | Simplify. | Devang Patel | 2011-03-21 | 1 | -5/+4 |
| | | | | | llvm-svn: 128030 | ||||
| * | If an AllocaInst referred by DbgDeclareInst is used by a LoadInst then the ↵ | Devang Patel | 2011-03-18 | 1 | -0/+24 |
| | | | | | | | LoadInst should also get a corresponding llvm.dbg.value intrinsic. llvm-svn: 127924 | ||||
| * | Remove dead code. | Devang Patel | 2011-03-18 | 1 | -2/+0 |
| | | | | | llvm-svn: 127923 | ||||
| * | Consider debug info intrinsics pointing to null value as dead instructions. | Devang Patel | 2011-03-18 | 1 | -1/+14 |
| | | | | | llvm-svn: 127922 | ||||
| * | Try to not lose variable's debug info during instcombine. | Devang Patel | 2011-03-17 | 1 | -0/+26 |
| | | | | | | | | This is done by lowering dbg.declare intrinsic into dbg.value intrinsic. Radar 9143931. llvm-svn: 127834 | ||||
| * | Refactor into a separate utility function. | Devang Patel | 2011-03-17 | 2 | -29/+42 |
| | | | | | llvm-svn: 127832 | ||||
| * | Clean up something noticed by Fritz. | Cameron Zwarich | 2011-03-15 | 1 | -1/+1 |
| | | | | | llvm-svn: 127684 | ||||
| * | Do not add PHIs with no users when creating LCSSA form. Patch by Andrew Clinton. | Cameron Zwarich | 2011-03-15 | 1 | -0/+10 |
| | | | | | llvm-svn: 127674 | ||||
| * | PR9450: Make switch optimization in SimplifyCFG not dependent on the ordering | Eli Friedman | 2011-03-15 | 1 | -7/+18 |
| | | | | | | | of pointers in an std::map. llvm-svn: 127650 | ||||
| * | PR9420; an instruction before an unreachable is guaranteed not to have any | Eli Friedman | 2011-03-09 | 1 | -1/+3 |
| | | | | | | | | | reachable uses, but there still might be uses in dead blocks. Use the standard solution of replacing all the uses with undef. This is a rare case because it's very sensitive to phase ordering in SimplifyCFG. llvm-svn: 127299 | ||||
| * | DenseMap<uintptr_t,...> doesn't allow all values as keys. | Jakob Stoklund Olesen | 2011-03-04 | 1 | -0/+2 |
| | | | | | | | | Avoid colliding with the sentinels, hopefully unbreaking llvm-gcc-x86_64-linux-selfhost. llvm-svn: 126982 | ||||
| * | Teach SimplifyCFG that (switch (select cond, X, Y)) is better expressed as a ↵ | Frits van Bommel | 2011-02-28 | 1 | -1/+26 |
| | | | | | | | | | branch. Based on a patch by Alistair Lynn. llvm-svn: 126647 | ||||
| * | Revert "SimplifyCFG: GEPs with just one non-constant index are also cheap." | Benjamin Kramer | 2011-02-25 | 1 | -5/+3 |
| | | | | | | | | Yes, there are other types than i8* and GEPs on them can produce an add+multiply. We don't consider that cheap enough to be speculatively executed. llvm-svn: 126481 | ||||
| * | SimplifyCFG: GEPs with just one non-constant index are also cheap. | Benjamin Kramer | 2011-02-24 | 1 | -3/+5 |
| | | | | | llvm-svn: 126452 | ||||
| * | SimplifyCFG: GEPs with constant indices are cheap enough to be executed ↵ | Benjamin Kramer | 2011-02-24 | 1 | -0/+5 |
| | | | | | | | unconditionally. llvm-svn: 126445 | ||||
| * | Do not use DIFactory. Use DIBuilder. | Devang Patel | 2011-02-24 | 1 | -6/+7 |
| | | | | | llvm-svn: 126398 | ||||
| * | If the phi node was used by an unreachable instruction that ends up using | Duncan Sands | 2011-02-21 | 1 | -2/+3 |
| | | | | | | | | | | | | | itself without going via a phi node then we could return false here in spite of making a change. Also, tweak the comment because this method can (and always could) return true without deleting the original phi node. For example, if the phi node was used by a read-only invoke instruction which is used by another phi node phi2 which is only used by and only uses the invoke, then phi2 would be deleted but not the invoke instruction and not the original phi node. llvm-svn: 126129 | ||||
| * | Simplify RecursivelyDeleteDeadPHINode. The only functionality change | Duncan Sands | 2011-02-21 | 1 | -28/+16 |
| | | | | | | | | | should be that if the phi is used by a side-effect free instruction with no uses then the phi and the instruction now get zapped (checked by the unittest). llvm-svn: 126124 | ||||
| * | Make RecursivelyDeleteDeadPHINode delete a phi node that has no users and add a | Nick Lewycky | 2011-02-20 | 1 | -7/+12 |
| | | | | | | | | | | test for that. With this change, test/CodeGen/X86/codegen-dce.ll no longer finds any instructions to DCE, so delete the test. Also renamed J and JP to I and IP in RecursivelyDeleteDeadPHINode. llvm-svn: 126088 | ||||
| * | Teach RecursivelyDeleteDeadPHINodes to handle multiple self-references. Patch | Nick Lewycky | 2011-02-20 | 1 | -5/+21 |
| | | | | | | | by Andrew Clinton! llvm-svn: 126077 | ||||
| * | Don't unroll loops whose header block's address is taken. | Chris Lattner | 2011-02-18 | 1 | -2/+10 |
| | | | | | | | | | | | | | | | | | | This is part of a futile attempt to not "break" bizzaro code like this: l1: printf("l1: %p\n", &&l1); ++x; if( x < 3 ) goto l1; Previously we'd fold &&l1 to 1, which is fine per our semantics but not helpful to the user. llvm-svn: 125827 | ||||
| * | Rename 'loopsimplify' to 'loop-simplify'. | Cameron Zwarich | 2011-02-10 | 1 | -3/+3 |
| | | | | | llvm-svn: 125317 | ||||
| * | SimplifyCFG: Track the number of used icmps when turning a icmp chain into a ↵ | Benjamin Kramer | 2011-02-07 | 1 | -7/+22 |
| | | | | | | | | | switch. If we used only one icmp, don't turn it into a switch. Also prevent the switch-to-icmp transform from creating identity adds, noticed by Marius Wachtler. llvm-svn: 125056 | ||||
| * | SimplifyCFG: Also transform switches that represent a range comparison but ↵ | Benjamin Kramer | 2011-02-03 | 1 | -6/+17 |
| | | | | | | | | | are not sorted into sub+icmp. This transforms another 1000 switches in gcc.c. llvm-svn: 124826 | ||||
| * | SimplifyCFG: Turn switches into sub+icmp+branch if possible. | Benjamin Kramer | 2011-02-02 | 1 | -0/+32 |
| | | | | | | | | | | | | | | | | | | This makes the job of the later optzn passes easier, allowing the vast amount of icmp transforms to chew on it. We transform 840 switches in gcc.c, leading to a 16k byte shrink of the resulting binary on i386-linux. The testcase from README.txt now compiles into decl %edi cmpl $3, %edi sbbl %eax, %eax andl $1, %eax ret llvm-svn: 124724 | ||||

