- Oct 21, 2008
-
-
Dan Gohman authored
the copy instruction from the instruction list before asking the target to create the new instruction. This gets the old instruction out of the way so that it doesn't interfere with the target's rematerialization code. In the case of x86, this helps it find more cases where EFLAGS is not live. Also, in the X86InstrInfo.cpp, teach isSafeToClobberEFLAGS to check to see if it reached the end of the block after scanning each instruction, instead of just before. This lets it notice when the end of the block is only two instructions away, without doing any additional scanning. These changes allow rematerialization to clobber EFLAGS in more cases, for example using xor instead of mov to set the return value to zero in the included testcase. llvm-svn: 57872
-
Dan Gohman authored
that NaNs are less common. llvm-svn: 57871
-
Dan Gohman authored
llvm-svn: 57870
-
Oscar Fuentes authored
llvm-svn: 57869
-
Dan Gohman authored
llvm-svn: 57864
-
Ted Kremenek authored
llvm-svn: 57863
-
Chris Lattner authored
for strange asm conditions earlier. In this case, we have a double being passed in an integer reg class. Convert to like sized integer register so that we allocate the right number for the class (two i32's for the f64 in this case). llvm-svn: 57862
-
Ted Kremenek authored
Further improve path-sensitivity with divide-by-zero checking by assuming that a denominator cannot be zero even when the result of an '/' or '%' expression is unknown. llvm-svn: 57855
-
rdar://6268365Ted Kremenek authored
Added test case inspired by <rdar://6268365>: recover path-sensitivity after compound assignment when the result of the assignment is not known. llvm-svn: 57852
-
Ted Kremenek authored
Used conjured symbols to recover path-sensitivity when the result of a compound assignment is UnknownVal(). llvm-svn: 57851
-
-
- Oct 20, 2008
-
-
Evan Cheng authored
llvm-svn: 57847
-
Jim Grosbach authored
is re-written by the callback to branch directly to the compiled code in future invocations. Added back in range-based memory permission functions for the updating of the stub on Darwin. llvm-svn: 57846
-
Dan Gohman authored
llvm-svn: 57845
-
Evan Cheng authored
llvm-svn: 57844
-
Evan Cheng authored
llvm-svn: 57843
-
Steve Naroff authored
Sema::CheckCompareOperands() and ASTContext::mergeTypes(): Change handling of ObjC qualified id types to be consistent with gcc. This changes a handful of test case errors into warnings (diff will tell you which cases have changed). llvm-svn: 57841
-
Duncan Sands authored
result type when the result type is legal but not the operand type. Add additional support for EXTRACT_SUBVECTOR and CONCAT_VECTORS, needed to handle such cases. llvm-svn: 57840
-
Duncan Sands authored
sensible for vectors being scalarized. Note that this method can't return anything very sensible when splitting non-power-of-two vectors. llvm-svn: 57839
-
Duncan Sands authored
llvm-svn: 57838
-
Duncan Sands authored
with TLI.getPointerTy for a small simplification. llvm-svn: 57837
-
Duncan Sands authored
the condition of a SELECT node. Make sure that the correct extension type (any-, sign- or zero-extend) is used. llvm-svn: 57836
-
Duncan Sands authored
llvm-svn: 57834
-
Duncan Sands authored
use an MVT::i1 and simplify the code while there. llvm-svn: 57833
-
Dan Gohman authored
llvm-svn: 57832
-
Duncan Sands authored
LowerOperation if it doesn't know what else to do. This methods should probably be factorized some, but this is good enough for the moment. Have LowerATOMIC_BINARY_64 use EXTRACT_ELEMENT rather than assuming the operand is a BUILD_PAIR (if it is then getNode will automagically simplify the EXTRACT_ELEMENT). This way LowerATOMIC_BINARY_64 usable from LegalizeTypes. llvm-svn: 57831
-
Matthijs Kooijman authored
llvm-svn: 57829
-
Matthijs Kooijman authored
llvm-svn: 57828
-
Matthijs Kooijman authored
llvm-svn: 57827
-
Matthijs Kooijman authored
llvm-svn: 57820
-
Matthijs Kooijman authored
llvm-svn: 57818
-
Chris Lattner authored
strcmp when needed. llvm-svn: 57817
-
Chris Lattner authored
llvm-svn: 57816
-
Chris Lattner authored
llvm-svn: 57815
-
Chris Lattner authored
llvm-svn: 57814
-
Chris Lattner authored
llvm-svn: 57813
-
Chris Lattner authored
weird errors about property attributes being unknown. llvm-svn: 57812
-
Chris Lattner authored
crash.m:8:12: error: type name requires a specifier or qualifier @property (readonlyx, getter=isAwesome) int _awesome; ^ crash.m:8:29: error: expected ';' at end of declaration list @property (readonlyx, getter=isAwesome) int _awesome; ^ crash.m:8:39: error: expected identifier or '(' @property (readonlyx, getter=isAwesome) int _awesome; ^ we now get: crash.m:8:12: error: unknown property attribute 'readonlyx' @property (readonlyx, getter=isAwesome) int _awesome; ^ Also, we can eliminate isObjCPropertyAttribute now. llvm-svn: 57811
-
Chris Lattner authored
llvm-svn: 57810
-
Chris Lattner authored
ParseObjCPropertyAttribute. Before, on this code (where a comma was forgotten): @property (readonly getter=isAwesome) int _awesome; we emitted: crash.m:9:11: error: expected ')' @property (readonly getter=isAwesome) int _awesome; ^ crash.m:9:37: error: type name requires a specifier or qualifier @property (readonly getter=isAwesome) int _awesome; ^ crash.m:9:37: error: expected identifier or '(' crash.m:9:37: error: expected ';' at end of declaration list crash.m:9:1: error: @property requires fields to be named @property (readonly getter=isAwesome) int _awesome; ^ now we emit: crash.m:9:21: error: expected ')' @property (readonly getter=isAwesome) int _awesome; ^ crash.m:9:11: error: to match this '(' @property (readonly getter=isAwesome) int _awesome; ^ llvm-svn: 57809
-