- Jan 08, 2011
-
-
Frits van Bommel authored
llvm-svn: 123061
-
Chris Lattner authored
them into the loop preheader, eliminating silly instructions like "icmp i32 0, 100" in fixed tripcount loops. This also better exposes the bigger problem with loop rotate that I'd like to fix: once this has been folded, the duplicated conditional branch *often* turns into an uncond branch. Not aggressively handling this is pessimizing later loop optimizations somethin' fierce by making "dominates all exit blocks" checks fail. llvm-svn: 123060
-
Chris Lattner authored
1. Take a flags argument instead of a bool. This makes it more clear to the reader what it is used for. 2. Add a flag that says that "remapping a value not in the map is ok". 3. Reimplement MapValue to share a bunch of code and be a lot more efficient. For lookup failures, don't drop null values into the map. 4. Using the new flag a bunch of code can vaporize in LinkModules and LoopUnswitch, kill it. No functionality change. llvm-svn: 123058
-
Chris Lattner authored
map from ValueMapper.h (giving us access to its utilities) and add a fastpath in the loop rotation code, avoiding expensive ssa updator manipulation for values with nothing to update. llvm-svn: 123057
-
Evan Cheng authored
llvm-svn: 123048
-
Evan Cheng authored
Instead encode llvm IR level property "HasSideEffects" in an operand (shared with IsAlignStack). Added MachineInstrs::hasUnmodeledSideEffects() to check the operand when the instruction is an INLINEASM. This allows memory instructions to be moved around INLINEASM instructions. llvm-svn: 123044
-
Bob Wilson authored
llvm-svn: 123042
-
- Jan 07, 2011
-
-
Matt Beaumont-Gay authored
llvm-svn: 123040
-
Devang Patel authored
llvm-svn: 123039
-
Bob Wilson authored
Patch by Tim Northover. llvm-svn: 123035
-
Tobias Grosser authored
X = sext x; x >s c ? X : C+1 --> X = sext x; X <s C+1 ? C+1 : X X = sext x; x <s c ? X : C-1 --> X = sext x; X >s C-1 ? C-1 : X X = zext x; x >u c ? X : C+1 --> X = zext x; X <u C+1 ? C+1 : X X = zext x; x <u c ? X : C-1 --> X = zext x; X >u C-1 ? C-1 : X X = sext x; x >u c ? X : C+1 --> X = sext x; X <u C+1 ? C+1 : X X = sext x; x <u c ? X : C-1 --> X = sext x; X >u C-1 ? C-1 : X Instead of calculating this with mixed types promote all to the larger type. This enables scalar evolution to analyze this expression. PR8866 llvm-svn: 123034
-
Tobias Grosser authored
llvm-svn: 123033
-
Devang Patel authored
Enable live debug variables pass. llvm-svn: 123032
-
Evan Cheng authored
llvm-svn: 123031
-
Benjamin Kramer authored
llvm-svn: 123030
-
Jay Foad authored
every BranchInst has a fixed number of operands. llvm-svn: 123027
-
Jay Foad authored
llvm-svn: 123025
-
Evan Cheng authored
Revert r122955. It seems using movups to lower memcpy can cause massive regression (even on Nehalem) in edge cases. I also didn't see any real performance benefit. llvm-svn: 123015
-
Bob Wilson authored
Also fix an off-by-one in SelectionDAGBuilder that was preventing shuffle vectors from being translated to EXTRACT_SUBVECTOR. Patch by Tim Northover. The test changes are needed to keep those spill-q tests from testing aligned spills and restores. If the only aligned stack objects are spill slots, we no longer realign the stack frame. Prior to this patch, an EXTRACT_SUBVECTOR was legalized by loading from the stack, which created an aligned frame index. Now, however, there is nothing except the spill slot in the stack frame, so I added an aligned alloca. llvm-svn: 122995
-
Bob Wilson authored
llvm-svn: 122994
-
Bob Wilson authored
We were never generating any of these nodes with variable indices, and there was one legalizer function asserting on a non-constant index. If we ever have a need to support variable indices, we can add this back again. llvm-svn: 122993
-
Bill Wendling authored
we have invokes, so there is no functionality change here. llvm-svn: 122990
-
Duncan Sands authored
Nadav Rotem. llvm-svn: 122983
-
- Jan 06, 2011
-
-
Eric Christopher authored
typed atomics. This will lower exclusively to libcalls at the moment. llvm-svn: 122979
-
Chris Lattner authored
llvm-svn: 122978
-
Chris Lattner authored
llvm-svn: 122977
-
Devang Patel authored
This fixes PR 8913 crash. llvm-svn: 122971
-
Bob Wilson authored
llvm-svn: 122970
-
Bob Wilson authored
llvm-svn: 122969
-
Bob Wilson authored
llvm-svn: 122968
-
Benjamin Kramer authored
llvm-svn: 122966
-
Abramo Bagnara authored
llvm-svn: 122963
-
Rafael Espindola authored
Patch by Richard Simth. llvm-svn: 122962
-
Benjamin Kramer authored
This happens when we take the (non-constant) length from a malloc. llvm-svn: 122961
-
Benjamin Kramer authored
llvm-svn: 122960
-
Benjamin Kramer authored
InstCombine: If we call llvm.objectsize on a malloc call we can replace it with the size passed to malloc. llvm-svn: 122959
-
Benjamin Kramer authored
llvm-svn: 122958
-
Benjamin Kramer authored
llvm-svn: 122957
-
Evan Cheng authored
The theory is it's still faster than a pair of movq / a quad of movl. This will probably hurt older chips like P4 but should run faster on current and future Intel processors. rdar://8817010 llvm-svn: 122955
-
Chris Lattner authored
llvm-svn: 122954
-