- 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
-
Evan Cheng authored
branches. PR8575, rdar://5134905, rdar://8911460. - Allow codegen tail duplication to dup small return blocks after register allocation is done. llvm-svn: 124462
-
- Jan 24, 2011
-
-
Chris Lattner authored
code. llvm-svn: 124100
-
Chris Lattner authored
llvm-svn: 124099
-
- Jan 23, 2011
-
-
Cameron Zwarich authored
on test-suite + SPEC2000 & SPEC2006. llvm-svn: 124068
-
- Jan 18, 2011
-
-
Cameron Zwarich authored
llvm-svn: 123732
-
Cameron Zwarich authored
function. This seems to be about a 1.5% speedup of -scalarrepl on test-suite with SPEC2000 and SPEC2006. llvm-svn: 123731
-
Cameron Zwarich authored
dominance and post-dominance frontiers. llvm-svn: 123725
-
Cameron Zwarich authored
llvm-svn: 123724
-
- Jan 17, 2011
-
-
Cameron Zwarich authored
checks enabled: 1) Use '<' to compare integers in a comparison function rather than '<='. 2) Use the uniqued set DefBlocks rather than Info.DefiningBlocks to initialize the priority queue. The speedup of scalarrepl on test-suite + SPEC2000 + SPEC2006 is a bit less, at just under 16% rather than 17%. llvm-svn: 123662
-
Cameron Zwarich authored
llvm-svn: 123618
-
Cameron Zwarich authored
eliminating a potentially quadratic data structure, this also gives a 17% speedup when running -scalarrepl on test-suite + SPEC2000 + SPEC2006. My initial experiment gave a greater speedup around 25%, but I moved the dominator tree level computation from dominator tree construction to PromoteMemToReg. Since this approach to computing IDFs has a much lower overhead than the old code using precomputed DFs, it is worth looking at using this new code for the second scalarrepl pass as well. llvm-svn: 123609
-
- Jan 15, 2011
-
-
Chris Lattner authored
to use it. llvm-svn: 123501
-
- Jan 14, 2011
-
-
Chris Lattner authored
"promote a bunch of load and stores" logic, allowing the code to be shared and reused. llvm-svn: 123456
-
Chris Lattner authored
llvm-svn: 123426
-
- Jan 11, 2011
-
-
Jakob Stoklund Olesen authored
DT->changeImmediateDominator() trivially ignores identity updates, so there is really no need for the uniqueing provided by SmallPtrSet. I expect this to fix PR8954. llvm-svn: 123286
-
Chris Lattner authored
llvm-svn: 123247
-
Frits van Bommel authored
Factor the actual simplification out of SimplifyIndirectBrOnSelect and into a new helper function so it can be reused in e.g. an upcoming SimplifySwitchOnSelect. No functional change. llvm-svn: 123234
-
Chris Lattner authored
is floating around in the ether. llvm-svn: 123223
-
Chris Lattner authored
phi nodes. It is called from MergeBlockIntoPredecessor which is called from GVN, which claims to preserve these. I'm skeptical that this is the actual problem behind PR8954, but this is a stab in the right direction. llvm-svn: 123222
-
Chris Lattner authored
llvm-svn: 123221
-
- Jan 08, 2011
-
-
Chris Lattner authored
loop info. llvm-svn: 123074
-
Chris Lattner authored
llvm-svn: 123071
-