- Aug 10, 2007
-
-
Christopher Lamb authored
Move isSubRegOf into MRegisterInfo. Fix a missed move elimination in LowerSubregs and add more debugging output there. llvm-svn: 41005
-
Chris Lattner authored
llvm-svn: 41004
-
Chris Lattner authored
"I've coded up some support in clang to flag warnings for non-constant format strings used in calls to printf-like functions (all the functions listed in "man fprintf"). Non-constant format strings are a source of many security exploits in C/C++ programs, and I believe are currently detected by gcc using the flag -Wformat-nonliteral." llvm-svn: 41003
-
Chris Lattner authored
llvm-svn: 41002
-
Devang Patel authored
llvm-svn: 41001
-
Chris Lattner authored
preprocessor state, causing bogus diagnostics when the file is parsed for real. This implements Misc/diag-checker.c. Thanks to Ted for noticing this. llvm-svn: 41000
-
Steve Naroff authored
Make sure the arithmetic conversion are done for relation and equality operators. This fixes the following... eypedef short S; int test(S X, long long Y) { return X < Y; } Before... (CompoundStmt 0x2905d00 (ReturnStmt 0x2905cf0 (BinaryOperator 0x2905cd0 'int' '<' (ImplicitCastExpr 0x2905cc0 'int' (DeclRefExpr 0x2905c80 'S':'short' Decl='X' 0x2905c20)) (DeclRefExpr 0x2905ca0 'long long' Decl='Y' 0x2905c50)))) After... (CompoundStmt 0x2b05c30 (ReturnStmt 0x2b05c20 (BinaryOperator 0x2b05c00 'int' '<' (ImplicitCastExpr 0x2b05bf0 'long long' (DeclRefExpr 0x2b05bb0 'S':'short' Decl='X' 0x2b05b50)) (DeclRefExpr 0x2b05bd0 'long long' Decl='Y' 0x2b05b80)))) llvm-svn: 40999
-
Devang Patel authored
llvm-svn: 40998
-
Devang Patel authored
llvm-svn: 40997
-
Chris Lattner authored
llvm-svn: 40996
-
Chris Lattner authored
llvm-svn: 40995
-
Chris Lattner authored
llvm-svn: 40994
-
Chris Lattner authored
codegen for: _Complex double bar(int); void test(_Complex double*); void test2(int c) { _Complex double X; X = bar(1); test(&X); } llvm-svn: 40993
-
Chris Lattner authored
bitcast. llvm-svn: 40992
-
Devang Patel authored
llvm-svn: 40991
-
Chris Lattner authored
llvm-svn: 40990
-
Chris Lattner authored
llvm-svn: 40989
-
Dan Gohman authored
"| grep foo | wc -l | grep 2" idiom used by many tests, so that, for example, tests don't mistakenly accept a count of 12 when 2 is expected. Also, the new form is more consice: "| grep foo | count 2". llvm-svn: 40988
-
Dan Gohman authored
use an intptr ValueType instead of i32 for the index operand in getCopyToParts. llvm-svn: 40987
-
Rafael Espindola authored
llvm-svn: 40986
-
Bill Wendling authored
llvm-svn: 40985
-
Chris Lattner authored
memcpy with zero length is hugely expensive, so avoid it. This speeds up coallescing from 1.17s to 0.88s on siod. llvm-svn: 40984
-
Chris Lattner authored
an empty vector. This speeds up llc slightly. llvm-svn: 40983
-
Bill Wendling authored
llvm-svn: 40982
-
Chris Lattner authored
llvm-svn: 40981
-
Chris Lattner authored
llvm-svn: 40980
-
Devang Patel authored
llvm-svn: 40979
-
Devang Patel authored
llvm-svn: 40978
-
Devang Patel authored
not split condition constraints. llvm-svn: 40977
-
Chris Lattner authored
llvm-svn: 40976
-
Evan Cheng authored
llvm-svn: 40975
-
Dale Johannesen authored
to handle values bigger than double. If we assume host==target and host long double works correctly, this is not too bad, but we don't want to have that limitation longterm. I could implement accepting double constants as long double or something like that, which would lead to incorrect codegen with no errors; the more I think about that the worse it seems. Rather than do such a hack that would be backed out later, I'm settling for giving reasonable error messages, for now. llvm-svn: 40974
-
Evan Cheng authored
llvm-svn: 40973
-
- Aug 09, 2007
-
-
Evan Cheng authored
divb / mulb outputs to ah. Under x86-64 it's not legal to read ah if the instruction requires a rex prefix (i.e. outputs to r8b, etc.). So issue shift right by 8 on AX and then truncate it to 8 bits instead. llvm-svn: 40972
-
Chris Lattner authored
alloca, increase the alignment of the load, turning it into an aligned load. This allows us to compile: #include <xmmintrin.h> __m128i foo(__m128i x){ static const unsigned int c_0[4] = { 0, 0, 0, 0 }; __m128i v_Zero = _mm_loadu_si128((__m128i*)c_0); x = _mm_unpacklo_epi8(x, v_Zero); return x; } into: _foo: punpcklbw _c_0.5944, %xmm0 ret .data .lcomm _c_0.5944,16,4 # c_0.5944 instead of: _foo: movdqu _c_0.5944, %xmm1 punpcklbw %xmm1, %xmm0 ret .data .lcomm _c_0.5944,16,2 # c_0.5944 llvm-svn: 40971
-
Evan Cheng authored
GR16_ sub-register class should be GR8_, not GR8. That is, it should only be 8-bit registers in 32-bit mode. Ditto for GR32_. llvm-svn: 40970
-
Chris Lattner authored
llvm-svn: 40969
-
Chris Lattner authored
llvm-svn: 40968
-
Chris Lattner authored
llvm-svn: 40967
-
Chris Lattner authored
llvm-svn: 40966
-