- Apr 05, 2012
-
-
Jakob Stoklund Olesen authored
LSR always tries to make the ICmp in the loop latch use the incremented induction variable. This allows the induction variable to be kept in a single register. When the induction variable limit is equal to the stride, SimplifySetCC() would break LSR's hard work by transforming: (icmp (add iv, stride), stride) --> (cmp iv, 0) This forced us to use lea for the IC update, preventing the simpler incl+cmp. <rdar://problem/7643606> <rdar://problem/11184260> llvm-svn: 154119
-
Dan Gohman authored
testcase slightly less trivial. This fixes rdar://11171718. llvm-svn: 154118
-
Owen Anderson authored
Treat f16 the same as f80/f128 for the purposes of generating constants during instruction selection. llvm-svn: 154113
-
Silviu Baranga authored
Added support for unpredictable ADC/SBC instructions on ARM, and also fixed some corner cases involving the PC register as an operand for these instructions. llvm-svn: 154101
-
Silviu Baranga authored
llvm-svn: 154100
-
Hongbin Zheng authored
modify it. llvm-svn: 154098
-
Hongbin Zheng authored
of the BBVectorizePass without using command line option. As pointed out by Hal, we can ask the TargetLoweringInfo for the architecture specific VectorizeConfig to perform vectorizing with architecture specific information. llvm-svn: 154096
-
Hongbin Zheng authored
BasicBlock in other passes, e.g. we can call vectorizeBasicBlock in the loop unroll pass right after the loop is unrolled. llvm-svn: 154089
-
Jim Grosbach authored
rdar://11189467 llvm-svn: 154087
-
Argyrios Kyrtzidis authored
the caller requested a null-terminated one. When mapping the file there could be a racing issue that resulted in the file being larger than the FileSize passed by the caller. We already have an assertion for this in MemoryBuffer::init() but have a runtime guarantee that the buffer will be null-terminated, so do a copy that adds a null-terminator. Protects against crash of rdar://11161822. llvm-svn: 154082
-
Jim Grosbach authored
Plain 'cpsr' is an alias for 'cpsr_fc'. rdar://11153753 llvm-svn: 154080
-
Jakob Stoklund Olesen authored
LSR can fold three addressing modes into its ICmpZero node: ICmpZero BaseReg + Offset => ICmp BaseReg, -Offset ICmpZero -1*ScaleReg + Offset => ICmp ScaleReg, Offset ICmpZero BaseReg + -1*ScaleReg => ICmp BaseReg, ScaleReg The first two cases are only used if TLI->isLegalICmpImmediate() likes the offset. Make sure the right Offset sign is passed to this method in the second case. The ARM version is not symmetric. <rdar://problem/11184260> llvm-svn: 154079
-
Akira Hatanaka authored
llvm-svn: 154062
-
- Apr 04, 2012
-
-
Owen Anderson authored
llvm-svn: 154054
-
Pete Cooper authored
REG_SEQUENCE expansion to COPY instructions wasn't taking account of sub register indices on the source registers. No simple test case llvm-svn: 154051
-
Benjamin Kramer authored
Still not fixed in the standard ;) llvm-svn: 154044
-
Pete Cooper authored
llvm-svn: 154039
-
Akira Hatanaka authored
types for N32 ABI. Add new test case and update existing ones. llvm-svn: 154038
-
Akira Hatanaka authored
types for N32 ABI. Test case will be updated after the patch that fixes TargetLowering::getPICJumpTableRelocBase is checked in. llvm-svn: 154036
-
Akira Hatanaka authored
types for N32 ABI and update test case. llvm-svn: 154034
-
Jakob Stoklund Olesen authored
A MOVCCr instruction can be commuted by inverting the condition. This can help reduce register pressure and remove unnecessary copies in some cases. <rdar://problem/11182914> llvm-svn: 154033
-
Jakob Stoklund Olesen authored
llvm-svn: 154032
-
Akira Hatanaka authored
types for N32 ABI and update test case. llvm-svn: 154031
-
Rafael Espindola authored
This allows us to keep passing reduced masks to SimplifyDemandedBits, but know about all the bits if SimplifyDemandedBits fails. This allows instcombine to simplify cases like the one in the included testcase. llvm-svn: 154011
-
Hongbin Zheng authored
reducing unroll count, otherwise the reduced unroll count is not taking the "OptimizeForSize" attribute into account. llvm-svn: 154007
-
Benjamin Kramer authored
llvm-svn: 154004
-
Craig Topper authored
llvm-svn: 153996
-
Pete Cooper authored
llvm-svn: 153984
-
Michael J. Spencer authored
llvm-svn: 153979
-
Michael J. Spencer authored
llvm-svn: 153977
-
Pete Cooper authored
Add VSELECT to LegalizeVectorTypes::ScalariseVectorResult. Previously it would crash if it encountered a 1 element VSELECT. Solution is slightly more complicated than just creating a SELET as we have to mask or sign extend the vector condition if it had different boolean contents from the scalar condition. Fixes <rdar://problem/11178095> llvm-svn: 153976
-
Pete Cooper authored
llvm-svn: 153975
-
- Apr 03, 2012
-
-
Chad Rosier authored
When folding X == X we need to check getBooleanContents() to determine if the result is a vector of ones or a vector of negative ones. I tried creating a test case, but the problem seems to only be exposed on a much older version of clang (around r144500). rdar://10923049 llvm-svn: 153966
-
Eric Christopher authored
might have more than 19 operands. Add a testcase to make sure I never screw that up again. Part of rdar://11026482 llvm-svn: 153961
-
Dylan Noblesmith authored
And indirectly, a dependency on most of the core LLVM optimization libraries. llvm-svn: 153957
-
Dylan Noblesmith authored
llvm-svn: 153956
-
Bill Wendling authored
llvm-svn: 153951
-
Bill Wendling authored
llvm-svn: 153949
-
Anton Korobeynikov authored
PLT when LLVM is built as shared library. This mimics the X86 backend towards the approach. llvm-svn: 153938
-
Craig Topper authored
llvm-svn: 153935
-