- Oct 01, 2011
-
-
Andrew Trick authored
llvm-svn: 140916
-
Michael J. Spencer authored
llvm-svn: 140906
-
Bill Wendling authored
and the alignment is 0 (i.e., it's defined globally in one file and declared in another file) it could get an alignment which is larger than the ABI allows for that type, resulting in aligned moves being used for unaligned loads. For instance, in file A.c: struct S s; In file B.c: struct { // something long }; extern S s; void foo() { struct S p = s; // ... } this copy is a 'memcpy' which is turned into a series of 'movaps' instructions on X86. But this is wrong, because 'struct S' has alignment of 4, not 16. llvm-svn: 140902
-
Nick Lewycky authored
llvm-svn: 140899
-
Jakob Stoklund Olesen authored
This uses less memory and it reduces the complexity of sub-class operations: - hasSubClassEq() and friends become O(1) instead of O(N). - getCommonSubClass() becomes O(N) instead of O(N^2). In the future, TableGen will infer register classes. This makes it cheap to add them. llvm-svn: 140898
-
Jakob Stoklund Olesen authored
It will soon need the context. llvm-svn: 140896
-
Jim Grosbach authored
llvm-svn: 140892
-
- Sep 30, 2011
-
-
Akira Hatanaka authored
Patch by Reed Kotler at Mips Technologies. llvm-svn: 140891
-
Akira Hatanaka authored
Patch by Reed Kotler at Mips Technologies. llvm-svn: 140887
-
Akira Hatanaka authored
Patch by Reed Kotler at Mips Technologies. llvm-svn: 140886
-
Akira Hatanaka authored
Patch by Reed Kotler at Mips Technologies. llvm-svn: 140885
-
Benjamin Kramer authored
llvm-svn: 140879
-
Akira Hatanaka authored
Patch by Reed Kotler at Mips Technologies. llvm-svn: 140878
-
Jim Grosbach authored
llvm-svn: 140875
-
Andrew Trick authored
llvm-svn: 140874
-
Andrew Trick authored
llvm-svn: 140873
-
Akira Hatanaka authored
llvm-svn: 140870
-
Jim Grosbach authored
InstCombine was incorrectly considering the conversion of the constant zero to be unsafe. We want to transform: define float @bar(float %x) nounwind readnone optsize ssp { %conv = fpext float %x to double %cmp = fcmp olt double %conv, 0.000000e+00 %conv1 = zext i1 %cmp to i32 %conv2 = sitofp i32 %conv1 to float ret float %conv2 } Into: define float @bar(float %x) nounwind readnone optsize ssp { %cmp = fcmp olt float %x, 0.000000e+00 ; <---- This %conv1 = zext i1 %cmp to i32 %conv2 = sitofp i32 %conv1 to float ret float %conv2 } rdar://10215914 llvm-svn: 140869
-
Bill Wendling authored
llvm-svn: 140868
-
Jim Grosbach authored
llvm-svn: 140865
-
Jim Grosbach authored
This matches clang, so default options in llc and friends are now closer to clang's defaults. llvm-svn: 140863
-
Akira Hatanaka authored
llvm-svn: 140862
-
Jim Grosbach authored
Remove an assert that was expecting only the relevant 16bit portion for the fixup being handled. Also kill some dead code in the T2 portion. rdar://9653509 llvm-svn: 140861
-
Jakob Stoklund Olesen authored
Thanks to Alexandru Dura and Jonas Paulsson for finding it. llvm-svn: 140859
-
Danil Malyshev authored
llvm-svn: 140856
-
Justin Holewinski authored
llvm-svn: 140855
-
Justin Holewinski authored
Also take this opportunity to clean up the rounding mode pass. llvm-svn: 140854
-
Duncan Sands authored
catch or repeated filter clauses. Teach instcombine a bunch of tricks for simplifying landingpad clauses. Currently the code only recognizes the GNU C++ and Ada personality functions, but that doesn't stop it doing a bunch of "generic" transforms which are hopefully fine for any real-world personality function. If these "generic" transforms turn out not to be generic, they can always be conditioned on the personality function. Probably someone should add the ObjC++ personality function. I didn't as I don't know anything about it. llvm-svn: 140852
-
Torok Edwin authored
thanks to Duncan. llvm-svn: 140850
-
Justin Holewinski authored
us to manually provide Pat<> definitions for all FP instruction patterns. llvm-svn: 140849
-
Torok Edwin authored
This helps with porting code from 2.9 to 3.0 as TargetSelect.h changed location, and if you include the old one by accident you will trigger this assert. llvm-svn: 140848
-
Akira Hatanaka authored
llvm-svn: 140841
-
Akira Hatanaka authored
immediate. llvm-svn: 140839
-
Jim Grosbach authored
Encode the immediate into its 8-bit form as part of isel rather than later, which simplifies things for mapping the encoding bits, allows the removal of the custom disassembler decoding hook, makes the operand printer trivial, and prepares things more cleanly for handling these in the asm parser. rdar://10211428 llvm-svn: 140834
-
Akira Hatanaka authored
slot filler. Patch by Reed Kotler at Mips Technologies. llvm-svn: 140825
-
Bill Wendling authored
llvm-svn: 140824
-
Bill Wendling authored
This is used when we want to take the address of a machine basic block, but it's not associated with a BB in LLVM IR. llvm-svn: 140823
-
Nick Lewycky authored
llvm-svn: 140821
-
Dan Gohman authored
handle the case where the retain is in a different basic block. rdar://10210274. llvm-svn: 140815
-
Dan Gohman authored
objc_retainBlock call is potentially responsible for copying the block to the heap to extend its lifetime. rdar://10209613. llvm-svn: 140814
-