- Sep 25, 2010
-
-
Eric Christopher authored
of the source, not the original alignment since it may no longer be valid. Fixes rdar://8400094 llvm-svn: 114781
-
- Sep 23, 2010
-
-
Evan Cheng authored
break critical edges on demand. llvm-svn: 114633
-
- Sep 22, 2010
-
-
Bob Wilson authored
truncates are free only in the case where the extended type is legal but the load type is not. If both types are illegal, such as when they are too big, the load may not be legalized into an extended load. llvm-svn: 114568
-
- Sep 21, 2010
-
-
Bob Wilson authored
load when the type of the load is not legal, even if truncates are not free. The load is going to be legalized to an extending load anyway. llvm-svn: 114488
-
Bob Wilson authored
llvm-svn: 114487
-
- Sep 18, 2010
-
-
Gabor Greif authored
llvm-svn: 114278
-
Gabor Greif authored
llvm-svn: 114277
-
- Sep 16, 2010
-
-
Owen Anderson authored
to optimize unreachable blocks. llvm-svn: 114105
-
Dale Johannesen authored
walking the asm arguments once and stashing their Values. This is wrong because the same memory location can be in the list twice, and if the first one has a sunkaddr substituted, the stashed value for the second one will be wrong (use-after-free). PR 8154. llvm-svn: 114104
-
- Sep 14, 2010
-
-
Owen Anderson authored
on by default and has received significant testing. llvm-svn: 113852
-
Chris Lattner authored
deleted. Fix this by doing the copyValue's before we delete stuff! The testcase only repros the problem on my system with valgrind. llvm-svn: 113820
-
Michael J. Spencer authored
This reverts commit r113632 Conflicts: cmake/modules/AddLLVM.cmake llvm-svn: 113819
-
- Sep 13, 2010
-
-
Eric Christopher authored
llvm-svn: 113769
-
John Thompson authored
llvm-svn: 113766
-
- Sep 11, 2010
-
-
Gabor Greif authored
llvm-svn: 113647
-
- Sep 10, 2010
-
-
Michael J. Spencer authored
llvm-svn: 113632
-
Owen Anderson authored
Lower the unrolling theshold to 150. Empirical tests indicate that this is a sweet spot in the performance per code size increase curve. llvm-svn: 113595
-
- Sep 09, 2010
-
-
Owen Anderson authored
not unrolling loops that contain calls that would be better off getting inlined. This mostly comes up when an interleaved devirtualization pass has devirtualized a call which the inliner will inline on a future pass. Thus, rather than blocking all loops containing calls, add a metric for "inline candidate calls" and block loops containing those instead. llvm-svn: 113535
-
Owen Anderson authored
Revert r113439, which relaxed the requirement that loops containing calls cannot be unrolled. After some discussion, there seems to be a better way to achieve the same effect. llvm-svn: 113528
-
Owen Anderson authored
llvm-svn: 113527
-
Owen Anderson authored
llvm-svn: 113526
-
Owen Anderson authored
Next step is to recalculate the threshold values given this new heuristic. llvm-svn: 113525
-
Owen Anderson authored
Relax the "don't unroll loops containing calls" rule. Instead, when a loop contains a call, lower the unrolling threshold to the optimize-for-size threshold. Basically, for loops containing calls, unrolling can still be profitable as long as the loop is REALLY small. llvm-svn: 113439
-
- Sep 08, 2010
-
-
Owen Anderson authored
The threshold value of 50 is arbitrary, and I chose it simply by analogy to the inlining thresholds, where the baseline unrolling threshold is slightly smaller than the baseline inlining threshold. This could undoubtedly use some tuning. llvm-svn: 113306
-
- Sep 06, 2010
-
-
Chris Lattner authored
llvm-svn: 113146
-
Chris Lattner authored
in the duplicated block instead of duplicating them. Duplicating them into the end of the loop and the preheader means that we got a phi node in the header of the loop, which prevented LICM from hoisting them. GVN would usually come around later and merge the duplicated instructions so we'd get reasonable output... except that anything dependent on the shoulda-been-hoisted value can't be hoisted. In PR5319 (which this fixes), a memory value didn't get promoted. llvm-svn: 113134
-
Chris Lattner authored
Loop::hasLoopInvariantOperands method. Remove a useless and confusing Loop::isLoopInvariant(Instruction) method, which didn't do what you thought it did. No functionality change. llvm-svn: 113133
-
- Sep 05, 2010
-
-
Chris Lattner authored
llvm-svn: 113115
-
Chris Lattner authored
llvm-svn: 113114
-
Chris Lattner authored
llvm-svn: 113113
-
- Sep 04, 2010
-
-
Chris Lattner authored
llvm-svn: 113073
-
Chris Lattner authored
location is being re-stored to the memory location. We would get a dangling pointer from the SSAUpdate data structure and miss a use. This fixes PR8068 llvm-svn: 113042
-
Owen Anderson authored
llvm-svn: 113025
-
- Sep 03, 2010
-
-
Owen Anderson authored
is provable that they're equivalent. This fixes PR4855. llvm-svn: 112994
-
Chris Lattner authored
llvm-svn: 112878
-
- Sep 02, 2010
-
-
Duncan Sands authored
I'm sure it is harmless. Original commit message: If PrototypeValue is erased in the middle of using the SSAUpdator then the SSAUpdator may access freed memory. Instead, simply pass in the type and name explicitly, which is all that was used anyway. llvm-svn: 112810
-
Chris Lattner authored
llvm-svn: 112763
-
- Sep 01, 2010
-
-
Dan Gohman authored
infinite loops or exits will eventually exit. This fixes PR5373. llvm-svn: 112745
-
Owen Anderson authored
if we schedule another LVI-using pass afterwards. llvm-svn: 112722
-
Eric Christopher authored
self host errors on clang-x86-64. llvm-svn: 112719
-