- Apr 14, 2011
-
-
Chris Lattner authored
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
-
- Apr 12, 2011
-
-
Chris Lattner authored
llvm-svn: 129319
-
- Apr 11, 2011
-
-
Jay Foad authored
llvm-svn: 129271
-
- Apr 08, 2011
-
-
Devang Patel authored
llvm-svn: 129114
-
- Apr 07, 2011
-
-
Devang Patel authored
llvm-svn: 129078
-
Devang Patel authored
llvm-svn: 129041
-
Devang Patel authored
llvm-svn: 129035
-
- Apr 04, 2011
-
-
Eli Friedman authored
llvm-commits. (Not sure why it only breaks on Windows; maybe it has something to do with the iterator representation...) llvm-svn: 128802
-
- Apr 03, 2011
-
-
Eli Friedman authored
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
-
- Mar 30, 2011
- Mar 21, 2011
-
-
Devang Patel authored
llvm-svn: 128030
-
- Mar 19, 2011
-
-
Devang Patel authored
If an AllocaInst referred by DbgDeclareInst is used by a LoadInst then the LoadInst should also get a corresponding llvm.dbg.value intrinsic. llvm-svn: 127924
-
Devang Patel authored
llvm-svn: 127923
-
Devang Patel authored
llvm-svn: 127922
-
- Mar 17, 2011
-
-
Devang Patel authored
This is done by lowering dbg.declare intrinsic into dbg.value intrinsic. Radar 9143931. llvm-svn: 127834
-
Devang Patel authored
llvm-svn: 127832
-
- Mar 15, 2011
-
-
Cameron Zwarich authored
llvm-svn: 127684
-
Cameron Zwarich authored
llvm-svn: 127674
-
Eli Friedman authored
of pointers in an std::map. llvm-svn: 127650
-
- Mar 09, 2011
-
-
Eli Friedman authored
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
-
- Mar 04, 2011
-
-
Jakob Stoklund Olesen authored
Avoid colliding with the sentinels, hopefully unbreaking llvm-gcc-x86_64-linux-selfhost. llvm-svn: 126982
-
- Feb 28, 2011
-
-
Frits van Bommel authored
Based on a patch by Alistair Lynn. llvm-svn: 126647
-
- Feb 25, 2011
-
-
Benjamin Kramer authored
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
-
Benjamin Kramer authored
llvm-svn: 126452
-
- Feb 24, 2011
-
-
Benjamin Kramer authored
llvm-svn: 126445
-
Devang Patel authored
llvm-svn: 126398
-
- Feb 21, 2011
-
-
Duncan Sands authored
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
-
Duncan Sands authored
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
-
- Feb 20, 2011
-
-
Nick Lewycky authored
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
-
Nick Lewycky authored
by Andrew Clinton! llvm-svn: 126077
-
- Feb 18, 2011
-
-
Chris Lattner authored
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
-
- Feb 11, 2011
-
-
Cameron Zwarich authored
llvm-svn: 125317
-
- Feb 07, 2011
-
-
Benjamin Kramer authored
SimplifyCFG: Track the number of used icmps when turning a icmp chain into a 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
-
- Feb 03, 2011
-
-
Benjamin Kramer authored
SimplifyCFG: Also transform switches that represent a range comparison but are not sorted into sub+icmp. This transforms another 1000 switches in gcc.c. llvm-svn: 124826
-
- Feb 02, 2011
-
-
Benjamin Kramer authored
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
-
- Jan 29, 2011
-
-
Evan Cheng authored
llvm-svn: 124526
-
Evan Cheng authored
llvm-svn: 124522
-
Evan Cheng authored
Re-commit r124462 with fixes. Tail recursion elim will now dup ret into unconditional predecessor to enable TCE on demand. llvm-svn: 124518
-
- Jan 28, 2011
-
-
Evan Cheng authored
llvm-svn: 124478
-