summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* New file, just a placeholder for now.Chris Lattner2007-08-102-0/+21
| | | | llvm-svn: 41002
* Do not overuse std::string. Pass around char * directly.Devang Patel2007-08-103-15/+14
| | | | llvm-svn: 41001
* Build ASTs before relexing the file. This avoids having comment finding ↵Chris Lattner2007-08-102-3/+8
| | | | | | | | | mutate the 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
* Make sure the arithmetic conversion are done for relation and equality ↵Steve Naroff2007-08-101-4/+14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* Clone loop.Devang Patel2007-08-101-5/+25
| | | | llvm-svn: 40998
* Add utility to clone loops.Devang Patel2007-08-102-0/+158
| | | | llvm-svn: 40997
* fix this test to pass.Chris Lattner2007-08-101-10/+9
| | | | llvm-svn: 40996
* fix a codegen bug handling ocuvector element exprs.Chris Lattner2007-08-101-3/+4
| | | | llvm-svn: 40995
* make this harderChris Lattner2007-08-101-0/+10
| | | | llvm-svn: 40994
* implement initial codegen for aggregate return functions. This implementsChris Lattner2007-08-102-4/+13
| | | | | | | | | | | | | | | 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
* Fix a bug handling function -> pointer decay and avoid emitting a noopChris Lattner2007-08-101-2/+6
| | | | | | bitcast. llvm-svn: 40992
* Add #ifndef guard.Devang Patel2007-08-101-0/+6
| | | | llvm-svn: 40991
* add #ifndef guardsChris Lattner2007-08-101-0/+5
| | | | llvm-svn: 40990
* add Value::getNameStart/getNameLen() accessors.Chris Lattner2007-08-102-1/+30
| | | | llvm-svn: 40989
* Add a test script for counting lines. This can be used instead of theDan Gohman2007-08-101-0/+17
| | | | | | | | "| 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
* Fix EXTRACT_ELEMENT, EXTRACT_SUBVECTOR, and EXTRACT_VECTOR_ELT toDan Gohman2007-08-102-3/+16
| | | | | | | use an intptr ValueType instead of i32 for the index operand in getCopyToParts. llvm-svn: 40987
* propagate struct size and alignment of byval arguments to the DAGRafael Espindola2007-08-106-4/+40
| | | | llvm-svn: 40986
* For kicks, I though it would be fun to use the correct opcode.Bill Wendling2007-08-101-31/+32
| | | | llvm-svn: 40985
* memcpy with zero length is hugely expensive, so avoid it. This speeds up ↵Chris Lattner2007-08-101-1/+5
| | | | | | coallescing from 1.17s to 0.88s on siod. llvm-svn: 40984
* small speedup in the case where a smallvector is default ctor'd fromChris Lattner2007-08-101-1/+2
| | | | | | an empty vector. This speeds up llc slightly. llvm-svn: 40983
* Adding SSSE3 intrinsics.Bill Wendling2007-08-102-19/+400
| | | | llvm-svn: 40982
* minor simplifications.Chris Lattner2007-08-101-10/+8
| | | | llvm-svn: 40981
* avoid copying strings.Chris Lattner2007-08-102-6/+7
| | | | llvm-svn: 40980
* Remove unncessary duplication.Devang Patel2007-08-101-14/+1
| | | | llvm-svn: 40979
* Calculate exit and start value of true loop and false loop respectively.Devang Patel2007-08-101-2/+28
| | | | llvm-svn: 40978
* ExitCondition and Induction variable are loop constraints Devang Patel2007-08-101-71/+145
| | | | | | not split condition constraints. llvm-svn: 40977
* unbreak the buildChris Lattner2007-08-091-1/+1
| | | | llvm-svn: 40976
* Bug fix. ~1U marks the val# dead.Evan Cheng2007-08-091-1/+1
| | | | llvm-svn: 40975
* Patch 10 for long double. Doing constants right needs expanding ConstantFPDale Johannesen2007-08-093-7/+28
| | | | | | | | | | | | 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
* Temporarily backing out this change until we know why some dejagnu tests are ↵Evan Cheng2007-08-091-3/+2
| | | | | | failing. llvm-svn: 40973
* divb / mulb outputs to ah. Under x86-64 it's not legal to read ah if the ↵Evan Cheng2007-08-092-4/+46
| | | | | | 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
* when we see a unaligned load from an insufficiently aligned global orChris Lattner2007-08-092-21/+53
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* GR16_ sub-register class should be GR8_, not GR8. That is, it should only be ↵Evan Cheng2007-08-091-3/+4
| | | | | | 8-bit registers in 32-bit mode. Ditto for GR32_. llvm-svn: 40970
* implement dumper support for declstmt's. The dumper is now "done".Chris Lattner2007-08-091-25/+31
| | | | llvm-svn: 40969
* implement dumper support for the rest of expressions.Chris Lattner2007-08-091-75/+54
| | | | llvm-svn: 40968
* move a switch to common code.Chris Lattner2007-08-092-10/+14
| | | | llvm-svn: 40967
* minor fixesChris Lattner2007-08-091-2/+3
| | | | llvm-svn: 40966
* Update per review comments.Dale Johannesen2007-08-092-32/+17
| | | | llvm-svn: 40965
* dump strings with escapes and other stuff in them nicely.Chris Lattner2007-08-091-16/+15
| | | | llvm-svn: 40964
* minor cleanupsChris Lattner2007-08-091-6/+4
| | | | llvm-svn: 40963
* __attribute__ starts a declspec.Chris Lattner2007-08-091-1/+3
| | | | llvm-svn: 40962
* Make NonLocal and None const in the right way. :-)Owen Anderson2007-08-095-32/+30
| | | | llvm-svn: 40961
* Traverse loop blocks' terminators to find split candidates.Devang Patel2007-08-091-48/+106
| | | | llvm-svn: 40960
* add dumping support for some new nodesChris Lattner2007-08-091-59/+15
| | | | llvm-svn: 40959
* long double 9 of N. This finishes up the X86-32 bitsDale Johannesen2007-08-094-23/+96
| | | | | | | | (constants are still not handled). Adds ConvertActions to control fp-to-fp conversions (these are currently defaulted for all other targets, so no changes there). llvm-svn: 40958
* Fix arguments for some Altivec instructions. From SWB.Dale Johannesen2007-08-091-9/+15
| | | | llvm-svn: 40957
* Dump out types for expressions, and handle typedefs nicely. Chris Lattner2007-08-091-1/+11
| | | | | | | | | | | | | | | | | | | | | | | | | This allows us to dump: typedef short S; int test(S X, long long Y) { return X < ((100)); } as: typedef short S; int test(S X, long long Y) (CompoundStmt 0x2905d40 (ReturnStmt 0x2905d30 (BinaryOperator 0x2905d10 'int' '<' (ImplicitCastExpr 0x2905d00 'int' (DeclRefExpr 0x2905c80 'S':'short' Decl='X' 0x2905c20)) (ParenExpr 0x2905ce0 'int' (ParenExpr 0x2905cc0 'int' (IntegerLiteral 0x2905ca0 'int' 100)))))) llvm-svn: 40956
* If a target really needs to custom lower constants, it should be allowedScott Michel2007-08-081-3/+11
| | | | | | to do so. llvm-svn: 40955
* add a new AST dumper interface (E->dump()). This dumps outChris Lattner2007-08-088-20/+638
| | | | | | | | | | | | | | | | | | | | | | | | | the AST in a structural, non-pretty, form useful for understanding the AST. It isn't quite done yet, but is already somewhat useful. For this example: int test(short X, long long Y) { return X < ((100)); } we get (with -parse-ast-dump): int test(short X, long long Y) (CompoundStmt 0x2905ce0 (ReturnStmt 0x2905cd0 (BinaryOperator 0x2905cb0 '<' (ImplicitCastExpr 0x2905ca0 (DeclRefExpr 0x2905c20 Decl='X' 0x2905bb0)) (ParenExpr 0x2905c80 (ParenExpr 0x2905c60 (IntegerLiteral 0x2905c40 100)))))) llvm-svn: 40954
* Add more comments to memdep.Owen Anderson2007-08-081-1/+27
| | | | llvm-svn: 40953
OpenPOWER on IntegriCloud