Anders Carlsson
25b16dbcd8
Add macros
...
llvm-svn: 61328
2008-12-22 05:42:03 +00:00
Anders Carlsson
8b79fc8aab
Add misc intrinsics
...
llvm-svn: 61327
2008-12-22 05:20:34 +00:00
Anders Carlsson
53b3d4a32a
Add control register intrinsics
...
llvm-svn: 61326
2008-12-22 05:00:07 +00:00
Anders Carlsson
4cf8ac8bb8
Add integer intrinsics
...
llvm-svn: 61325
2008-12-22 04:55:36 +00:00
Anders Carlsson
0462eb270a
Generate code for __builtin_ia32_pshufw
...
llvm-svn: 61324
2008-12-22 04:54:32 +00:00
Anders Carlsson
70d5f46646
Add cacheability intrinsics
...
llvm-svn: 61323
2008-12-22 03:50:21 +00:00
Anders Carlsson
1e71996bd1
Add store intrinsics
...
llvm-svn: 61322
2008-12-22 03:16:40 +00:00
Anders Carlsson
c7d0d8b60d
Add set intrinsics
...
llvm-svn: 61321
2008-12-22 02:51:35 +00:00
Anders Carlsson
13fd3a1411
Add load intrinsics
...
llvm-svn: 61320
2008-12-22 02:43:30 +00:00
Zhongxing Xu
5b0ae81ab1
Add an option to make 'RemoveDeadBindings' a configurable behavior. This enables
...
us to measure the effect of this optimization.
llvm-svn: 61319
2008-12-22 01:52:37 +00:00
Anders Carlsson
1e4a9b7c0d
_mm_cvtsi64_ss is 64-bit only, so wrap it in #ifdef __x86_64__
...
Add composite conversion intrinsics - will implement them shortly.
llvm-svn: 61318
2008-12-22 01:26:50 +00:00
Anders Carlsson
157643c8d7
Add a couple of conversion intrinsics
...
llvm-svn: 61317
2008-12-22 00:48:30 +00:00
Anders Carlsson
60053dd2a5
Add comparison intrinsics.
...
llvm-svn: 61316
2008-12-22 00:28:39 +00:00
Anders Carlsson
2df1ce496e
Check in an in-progress version of xmmintrin.h that I had lying around.
...
llvm-svn: 61315
2008-12-22 00:01:20 +00:00
Anders Carlsson
39def3adc8
Add codegen support for __null
...
llvm-svn: 61314
2008-12-21 22:39:40 +00:00
Sebastian Redl
fc24b63b9a
Fix a comment.
...
llvm-svn: 61313
2008-12-21 19:24:58 +00:00
Sebastian Redl
b219c90d7b
Parser support for C++ try-catch.
...
llvm-svn: 61312
2008-12-21 16:41:36 +00:00
Zhongxing Xu
7b9c57083b
Correct comments.
...
llvm-svn: 61311
2008-12-21 13:00:52 +00:00
Sebastian Redl
f795cbed2e
Test case makes a platform assumption, so force triple.
...
llvm-svn: 61310
2008-12-21 12:17:24 +00:00
Sebastian Redl
52f03bac60
Convert a few Stmt actions to smart pointers.
...
llvm-svn: 61309
2008-12-21 12:04:03 +00:00
Sebastian Redl
8de8234de4
Document how move semantics and the emulation work. Do this in-file because it's such a specific thing.
...
Restructure code for less duplication.
llvm-svn: 61308
2008-12-21 11:56:24 +00:00
Mikhail Glushenkov
2fe093f2b8
Use ignore & grep instead of XFAIL.
...
llvm-svn: 61307
2008-12-21 07:47:49 +00:00
Zhongxing Xu
d93e03b25f
fix 80-col violation.
...
llvm-svn: 61306
2008-12-21 04:46:06 +00:00
Anders Carlsson
3ebc7c4a0d
Implement alignof for vla types.
...
llvm-svn: 61305
2008-12-21 03:48:05 +00:00
Zhongxing Xu
40b0e50ffd
Use utility method.
...
llvm-svn: 61304
2008-12-21 03:46:11 +00:00
Anders Carlsson
e0808df4a5
Add ASTContext::getBaseElementType and use it in CodeGenFunction::EmitArraySubscriptExpr.
...
llvm-svn: 61303
2008-12-21 03:44:36 +00:00
Anders Carlsson
118467dfb7
Commit the right version of the test
...
llvm-svn: 61302
2008-12-21 03:40:32 +00:00
Anders Carlsson
76dbc0423e
Make sure to emit the size expression for sizeof(type)
...
llvm-svn: 61301
2008-12-21 03:33:21 +00:00
Zhongxing Xu
303a6d4f11
Use utility methods. No functional change.
...
llvm-svn: 61300
2008-12-21 03:31:01 +00:00
Zhongxing Xu
f97d95a782
Remove unused function.
...
llvm-svn: 61299
2008-12-21 03:26:05 +00:00
Eli Friedman
dea4193e8a
Fix for PR3246: an empty clobber list is the empty string, not a null
...
string.
That said, we should probably try and track down the correct clobber
lists for the targets that don't have them (PPC, ARM, and Sparc),
so that we can generate correct code.
llvm-svn: 61298
2008-12-21 01:15:32 +00:00
Nick Lewycky
10eb8e533f
Turn strcmp into memcmp, such as strcmp(P, "x") --> memcmp(P, "x", 2).
...
llvm-svn: 61297
2008-12-21 00:19:21 +00:00
Anders Carlsson
8e0ba05074
Did not mean to commit this.
...
llvm-svn: 61296
2008-12-21 00:16:32 +00:00
Anders Carlsson
3d312f8788
Handle VLA indexing
...
llvm-svn: 61295
2008-12-21 00:11:23 +00:00
Douglas Gregor
2eedc3aa1c
Add support for member references (E1.E2, E1->E2) with C++ semantics,
...
which can refer to static data members, enumerators, and member
functions as well as to non-static data members.
Implement correct lvalue computation for member references in C++.
Compute the result type of non-static data members of reference type properly.
llvm-svn: 61294
2008-12-20 23:49:58 +00:00
Fariborz Jahanian
a0befc0a6f
Finish up saving original parameter type and
...
using it in ObjC's method parameter encoding.
llvm-svn: 61293
2008-12-20 23:29:59 +00:00
Eli Friedman
5ad3c91b27
Extend the unsupported error to include break and continue, and fix a
...
warning by using an unsigned index.
llvm-svn: 61292
2008-12-20 23:18:29 +00:00
Eli Friedman
f4084708cd
Make VLAs usable, and make basic usage work correctly. Also, add a
...
simple test that actually does VLA codegen.
Note that despite the fact that the alloca isn't in the entry block, it
should dominate all uses; this is guaranteed by the restrictions on goto
into VLA scope in C99.
llvm-svn: 61291
2008-12-20 23:11:59 +00:00
Anders Carlsson
5d985f5f16
Handle typedefs to VLAs (Emit the size expr when we encounter the typedef
...
llvm-svn: 61290
2008-12-20 21:51:53 +00:00
Anders Carlsson
fbef9c208f
Check the entire StackSaveValues stack for VLAs when dealing with goto and return statements. Noticed by Eli Friedman.
...
llvm-svn: 61289
2008-12-20 21:33:38 +00:00
Anders Carlsson
c20879a6e4
Make sure to generate code for arguments that have a variably modified type.
...
llvm-svn: 61288
2008-12-20 21:28:43 +00:00
Fariborz Jahanian
0c277dbee2
Add case for the new AST node.
...
llvm-svn: 61287
2008-12-20 21:06:28 +00:00
Fariborz Jahanian
7664ffb954
introducing ParmVarWithOriginalTypeDecl class to
...
keep track of the original parameter decl. types.
This is work in progress.
llvm-svn: 61286
2008-12-20 20:56:12 +00:00
Anders Carlsson
8a01b79274
Change EmitVLASize to take a QualType that must be a variably modified type.
...
Emit the size even if the declared type is a variably modified type. This lets us handle
void f(int n) {
int (*a)[n];
printf("size: %d\n", sizeof(*a));
}
llvm-svn: 61285
2008-12-20 20:46:34 +00:00
Anders Carlsson
e388a5bf44
Split up emitting of VLA sizes and getting the size of a VLA.
...
llvm-svn: 61284
2008-12-20 20:27:15 +00:00
Anders Carlsson
6200f0c533
Add some ErrorUnsupported calls and turn on VLA codegen again.
...
llvm-svn: 61283
2008-12-20 19:33:21 +00:00
Fariborz Jahanian
7acf0749d4
Strangely enough, name of ObjC class is not encoded into the
...
full encoding of the class which has an ivar of pointer to this
class. Its name is encoded in the type for the ivar in the
ivar-list metadata. This patch conforms to the above rule.
llvm-svn: 61282
2008-12-20 19:17:01 +00:00
Dan Gohman
ab316350bf
Fix fast-isel to not emit invalid assembly when presented with a
...
constant shift count that doesn't fit in the shift instruction's
immediate field. This fixes PR3242.
llvm-svn: 61281
2008-12-20 17:19:40 +00:00
Dan Gohman
a12f115972
Reword the comment for ConstantInt's getLimitedValue.
...
llvm-svn: 61280
2008-12-20 17:06:39 +00:00
Nick Lewycky
4bc10c9e77
Remove redundant test for vector-nature. Scan the vector first to see whether
...
our optz'n will apply to it, then build the replacement vector only if needed.
llvm-svn: 61279
2008-12-20 16:48:00 +00:00