- Dec 11, 2012
-
-
Patrik Hagglund authored
llvm-svn: 169854
-
Chandler Carruth authored
instead of the instruction. I've left a forwarding wrapper for the instruction so users with the instruction don't need to create a GEPOperator themselves. This lets us remove the copy of this code in instsimplify. I've looked at most of the other copies of similar code, and this is the only one I've found that is actually exactly the same. The one in InlineCost is very close, but it requires re-mapping non-constant indices through the cost analysis value simplification map. I could add direct support for this to the generic routine, but it seems overly specific. llvm-svn: 169853
-
Chandler Carruth authored
the GEP instruction class. This is part of the continued refactoring and cleaning of the infrastructure used by SROA. This particular operation is also done in a few other places which I'll try to refactor to share this implementation. llvm-svn: 169852
-
Patrik Hagglund authored
instead of EVTs. llvm-svn: 169851
-
Patrik Hagglund authored
MVTs, instead of EVTs. Accordingly, add bitsLT (and similar) to MVT. llvm-svn: 169850
-
Patrik Hagglund authored
from EVT. llvm-svn: 169849
-
Patrik Hagglund authored
EVTs. llvm-svn: 169848
-
Patrik Hagglund authored
EVTs. llvm-svn: 169847
-
Patrik Hagglund authored
getIndexedStoreAction, and addRegisterClass to take an MVT, instead of EVT. llvm-svn: 169846
-
Patrik Hagglund authored
of EVT. llvm-svn: 169845
-
Patrik Hagglund authored
instead of EVTs. llvm-svn: 169844
-
Patrik Hagglund authored
llvm-svn: 169843
-
Patrik Hagglund authored
EVT. llvm-svn: 169842
-
Patrik Hagglund authored
llvm-svn: 169841
-
Patrik Hagglund authored
llvm-svn: 169840
-
Patrik Hagglund authored
llvm-svn: 169839
-
Patrik Hagglund authored
EVT. Accordingly, change RegDefIter to contain MVTs instead of EVTs. llvm-svn: 169838
-
Patrik Hagglund authored
Accordingly, add helper funtions getSimpleValueType (in parallel to getValueType) in SDValue, SDNode, and TargetLowering. This is the first, in a series of patches. llvm-svn: 169837
-
Hao Liu authored
llvm-svn: 169823
-
Hao Liu authored
llvm-svn: 169821
-
NAKAMURA Takumi authored
llvm-svn: 169819
-
NAKAMURA Takumi authored
-#include "llvm/Target/TargetTransformImpl.h" -#include "llvm/TargetTransformInfo.h" llvm-svn: 169818
-
NAKAMURA Takumi authored
llvm-svn: 169817
-
Jyotsna Verma authored
llvm-svn: 169814
-
Nadav Rotem authored
llvm-svn: 169813
-
Rafael Espindola authored
llvm-svn: 169812
-
Evan Cheng authored
llvm-svn: 169811
-
Chad Rosier authored
llvm-svn: 169803
-
Chandler Carruth authored
try to reduce the width of this load, and would end up transforming: (truncate (lshr (sextload i48 <ptr> as i64), 32) to i32) to (truncate (zextload i32 <ptr+4> as i64) to i32) We lost the sext attached to the load while building the narrower i32 load, and replaced it with a zext because lshr always zext's the results. Instead, bail out of this combine when there is a conflict between a sextload and a zext narrowing. The rest of the DAG combiner still optimize the code down to the proper single instruction: movswl 6(...),%eax Which is exactly what we wanted. Previously we read past the end *and* missed the sign extension: movl 6(...), %eax llvm-svn: 169802
-
Paul Redmond authored
This test case uses -mcpu=corei7 so it belongs in CodeGen/X86 Reviewed by: Nadav llvm-svn: 169801
-
Bill Wendling authored
llvm-svn: 169798
-
Chad Rosier authored
This shouldn't affect codegen for -O0 compiles as tail call markers are not emitted in unoptimized compiles. Testing with the external/internal nightly test suite reveals no change in compile time performance. Testing with -O1, -O2 and -O3 with fast-isel enabled did not cause any compile-time or execution-time failures. All tests were performed on my x86 machine. I'll monitor our arm testers to ensure no regressions occur there. In an upcoming clang patch I will be marking the objc_autoreleaseReturnValue and objc_retainAutoreleaseReturnValue as tail calls unconditionally. While it's theoretically true that this is just an optimization, it's an optimization that we very much want to happen even at -O0, or else ARC applications become substantially harder to debug. Part of rdar://12553082 llvm-svn: 169796
-
Eric Christopher authored
controls each of the abbreviation sets (only a single one at the moment) and computes offsets separately as well for each set of DIEs. No real function change, ordering of abbreviations for the skeleton CU changed but only because we're computing in a separate order. Fix the testcase not to care. llvm-svn: 169793
-
Evan Cheng authored
1. Teach it to use overlapping unaligned load / store to copy / set the trailing bytes. e.g. On 86, use two pairs of movups / movaps for 17 - 31 byte copies. 2. Use f64 for memcpy / memset on targets where i64 is not legal but f64 is. e.g. x86 and ARM. 3. When memcpy from a constant string, do *not* replace the load with a constant if it's not possible to materialize an integer immediate with a single instruction (required a new target hook: TLI.isIntImmLegal()). 4. Use unaligned load / stores more aggressively if target hooks indicates they are "fast". 5. Update ARM target hooks to use unaligned load / stores. e.g. vld1.8 / vst1.8. Also increase the threshold to something reasonable (8 for memset, 4 pairs for memcpy). This significantly improves Dhrystone, up to 50% on ARM iOS devices. rdar://12760078 llvm-svn: 169791
-
Arnold Schwaighofer authored
Analyse Phis under the starting assumption that they are NoAlias. Recursively look at their inputs. If they MayAlias/MustAlias there must be an input that makes them so. Addresses bug 14351. llvm-svn: 169788
-
- Dec 10, 2012
-
-
Lang Hames authored
InitSections is called before the MCContext is initialized it could cause duplicate temporary symbols to be emitted later (after context initialization resets the temporary label counter). llvm-svn: 169785
-
Anshuman Dasgupta authored
beyond array bounds. No test case since I cannot reproduce an ICE with this bug. According to Carlos -- the bug reporter -- a segfault occurs only when LLVM is compiled with a specific version of GCC. llvm-svn: 169783
-
Eric Christopher authored
llvm-svn: 169780
-
Eric Christopher authored
llvm-svn: 169779
-
Eric Christopher authored
llvm-svn: 169776
-