Fariborz Jahanian
669e8d3c6a
Fixed a bug showed up the meta-data for protocol
...
instance methods by building print-class-info.m,
whose output is now identical to what gcc puts out.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@61339 91177308-0d34-0410-b5e6-96231b3b80d8
2008-12-22 20:41:58 +00:00
Sebastian Redl
4b07b2968f
Partial AST and Sema support for C++ try-catch.
...
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@61337 91177308-0d34-0410-b5e6-96231b3b80d8
2008-12-22 19:15:10 +00:00
Fariborz Jahanian
804058ece0
Patch to remove bogus warning in case of @dynamic
...
property in a category and to issue diagnostics
for mismatch method in some other cases.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@61336 91177308-0d34-0410-b5e6-96231b3b80d8
2008-12-22 19:05:31 +00:00
Sebastian Redl
cfb664c308
Expr and Stmt must be destroyed with Destroy, not delete. Fixes PR/3245.
...
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@61335 91177308-0d34-0410-b5e6-96231b3b80d8
2008-12-22 17:51:10 +00:00
Anders Carlsson
398082e33c
Fix test failures noticed by Fariborz.
...
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@61334 91177308-0d34-0410-b5e6-96231b3b80d8
2008-12-22 17:42:23 +00:00
Zhongxing Xu
a5a4166f8c
Fix initialization order.
...
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@61333 91177308-0d34-0410-b5e6-96231b3b80d8
2008-12-22 08:30:52 +00:00
Anders Carlsson
2a29dcc6c6
Flip the switch and start using the new xmmintrin.h
...
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@61332 91177308-0d34-0410-b5e6-96231b3b80d8
2008-12-22 07:36:02 +00:00
Anders Carlsson
8e28d24ce3
Comment out _mm_insert_pi16 for now
...
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@61331 91177308-0d34-0410-b5e6-96231b3b80d8
2008-12-22 07:34:23 +00:00
Anders Carlsson
a6431dc8d2
Implement the last intrinsics, _mm_insert_pi16 is the last remaining one now.
...
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@61330 91177308-0d34-0410-b5e6-96231b3b80d8
2008-12-22 07:08:03 +00:00
Douglas Gregor
88a3514f36
Add support for calls to overloaded member functions. Things to note:
...
- Overloading has to cope with having both static and non-static
member functions in the overload set.
- The call may or may not have an implicit object argument,
depending on the syntax (x.f() vs. f()) and the context (static
vs. non-static member function).
- We now generate MemberExprs for implicit member access expression.
- We now cope with mutable whenever we're building MemberExprs.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@61329 91177308-0d34-0410-b5e6-96231b3b80d8
2008-12-22 05:46:06 +00:00
Anders Carlsson
b595509bf5
Add macros
...
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@61328 91177308-0d34-0410-b5e6-96231b3b80d8
2008-12-22 05:42:03 +00:00
Anders Carlsson
50099cbb48
Add misc intrinsics
...
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@61327 91177308-0d34-0410-b5e6-96231b3b80d8
2008-12-22 05:20:34 +00:00
Anders Carlsson
c1f9afd5f0
Add control register intrinsics
...
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@61326 91177308-0d34-0410-b5e6-96231b3b80d8
2008-12-22 05:00:07 +00:00
Anders Carlsson
62af71c07e
Add integer intrinsics
...
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@61325 91177308-0d34-0410-b5e6-96231b3b80d8
2008-12-22 04:55:36 +00:00
Anders Carlsson
4ee51b464f
Generate code for __builtin_ia32_pshufw
...
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@61324 91177308-0d34-0410-b5e6-96231b3b80d8
2008-12-22 04:54:32 +00:00
Anders Carlsson
dedad4ed67
Add cacheability intrinsics
...
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@61323 91177308-0d34-0410-b5e6-96231b3b80d8
2008-12-22 03:50:21 +00:00
Anders Carlsson
09b9305acf
Add store intrinsics
...
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@61322 91177308-0d34-0410-b5e6-96231b3b80d8
2008-12-22 03:16:40 +00:00
Anders Carlsson
a6ba0012fb
Add set intrinsics
...
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@61321 91177308-0d34-0410-b5e6-96231b3b80d8
2008-12-22 02:51:35 +00:00
Anders Carlsson
9770086950
Add load intrinsics
...
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@61320 91177308-0d34-0410-b5e6-96231b3b80d8
2008-12-22 02:43:30 +00:00
Zhongxing Xu
ff944a8c48
Add an option to make 'RemoveDeadBindings' a configurable behavior. This enables
...
us to measure the effect of this optimization.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@61319 91177308-0d34-0410-b5e6-96231b3b80d8
2008-12-22 01:52:37 +00:00
Anders Carlsson
1b76b80f75
_mm_cvtsi64_ss is 64-bit only, so wrap it in #ifdef __x86_64__
...
Add composite conversion intrinsics - will implement them shortly.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@61318 91177308-0d34-0410-b5e6-96231b3b80d8
2008-12-22 01:26:50 +00:00
Anders Carlsson
4fcc313c62
Add a couple of conversion intrinsics
...
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@61317 91177308-0d34-0410-b5e6-96231b3b80d8
2008-12-22 00:48:30 +00:00
Anders Carlsson
f62c681839
Add comparison intrinsics.
...
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@61316 91177308-0d34-0410-b5e6-96231b3b80d8
2008-12-22 00:28:39 +00:00
Anders Carlsson
566d8da282
Check in an in-progress version of xmmintrin.h that I had lying around.
...
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@61315 91177308-0d34-0410-b5e6-96231b3b80d8
2008-12-22 00:01:20 +00:00
Anders Carlsson
3f70456b8a
Add codegen support for __null
...
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@61314 91177308-0d34-0410-b5e6-96231b3b80d8
2008-12-21 22:39:40 +00:00
Sebastian Redl
a89d82c1c8
Fix a comment.
...
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@61313 91177308-0d34-0410-b5e6-96231b3b80d8
2008-12-21 19:24:58 +00:00
Sebastian Redl
a0fd8652f3
Parser support for C++ try-catch.
...
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@61312 91177308-0d34-0410-b5e6-96231b3b80d8
2008-12-21 16:41:36 +00:00
Zhongxing Xu
c994bb2b80
Correct comments.
...
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@61311 91177308-0d34-0410-b5e6-96231b3b80d8
2008-12-21 13:00:52 +00:00
Sebastian Redl
e3f38eac58
Test case makes a platform assumption, so force triple.
...
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@61310 91177308-0d34-0410-b5e6-96231b3b80d8
2008-12-21 12:17:24 +00:00
Sebastian Redl
a60528cdac
Convert a few Stmt actions to smart pointers.
...
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@61309 91177308-0d34-0410-b5e6-96231b3b80d8
2008-12-21 12:04:03 +00:00
Sebastian Redl
7886ce8858
Document how move semantics and the emulation work. Do this in-file because it's such a specific thing.
...
Restructure code for less duplication.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@61308 91177308-0d34-0410-b5e6-96231b3b80d8
2008-12-21 11:56:24 +00:00
Zhongxing Xu
8ce6666213
fix 80-col violation.
...
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@61306 91177308-0d34-0410-b5e6-96231b3b80d8
2008-12-21 04:46:06 +00:00
Anders Carlsson
4a1424fd70
Implement alignof for vla types.
...
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@61305 91177308-0d34-0410-b5e6-96231b3b80d8
2008-12-21 03:48:05 +00:00
Zhongxing Xu
47b32407e4
Use utility method.
...
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@61304 91177308-0d34-0410-b5e6-96231b3b80d8
2008-12-21 03:46:11 +00:00
Anders Carlsson
6183a99b06
Add ASTContext::getBaseElementType and use it in CodeGenFunction::EmitArraySubscriptExpr.
...
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@61303 91177308-0d34-0410-b5e6-96231b3b80d8
2008-12-21 03:44:36 +00:00
Anders Carlsson
0269709723
Commit the right version of the test
...
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@61302 91177308-0d34-0410-b5e6-96231b3b80d8
2008-12-21 03:40:32 +00:00
Anders Carlsson
b50525ba0e
Make sure to emit the size expression for sizeof(type)
...
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@61301 91177308-0d34-0410-b5e6-96231b3b80d8
2008-12-21 03:33:21 +00:00
Zhongxing Xu
56a3460cf2
Use utility methods. No functional change.
...
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@61300 91177308-0d34-0410-b5e6-96231b3b80d8
2008-12-21 03:31:01 +00:00
Zhongxing Xu
a90dce3106
Remove unused function.
...
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@61299 91177308-0d34-0410-b5e6-96231b3b80d8
2008-12-21 03:26:05 +00:00
Eli Friedman
ccf614c479
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.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@61298 91177308-0d34-0410-b5e6-96231b3b80d8
2008-12-21 01:15:32 +00:00
Anders Carlsson
97e0179f1a
Did not mean to commit this.
...
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@61296 91177308-0d34-0410-b5e6-96231b3b80d8
2008-12-21 00:16:32 +00:00
Anders Carlsson
8b33c087fc
Handle VLA indexing
...
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@61295 91177308-0d34-0410-b5e6-96231b3b80d8
2008-12-21 00:11:23 +00:00
Douglas Gregor
86f1940835
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.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@61294 91177308-0d34-0410-b5e6-96231b3b80d8
2008-12-20 23:49:58 +00:00
Fariborz Jahanian
4306d3cb91
Finish up saving original parameter type and
...
using it in ObjC's method parameter encoding.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@61293 91177308-0d34-0410-b5e6-96231b3b80d8
2008-12-20 23:29:59 +00:00
Eli Friedman
20c802bf30
Extend the unsupported error to include break and continue, and fix a
...
warning by using an unsigned index.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@61292 91177308-0d34-0410-b5e6-96231b3b80d8
2008-12-20 23:18:29 +00:00
Eli Friedman
8f39f5e96c
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.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@61291 91177308-0d34-0410-b5e6-96231b3b80d8
2008-12-20 23:11:59 +00:00
Anders Carlsson
fcdbb93749
Handle typedefs to VLAs (Emit the size expr when we encounter the typedef
...
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@61290 91177308-0d34-0410-b5e6-96231b3b80d8
2008-12-20 21:51:53 +00:00
Anders Carlsson
7e63b8527f
Check the entire StackSaveValues stack for VLAs when dealing with goto and return statements. Noticed by Eli Friedman.
...
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@61289 91177308-0d34-0410-b5e6-96231b3b80d8
2008-12-20 21:33:38 +00:00
Anders Carlsson
751358ff73
Make sure to generate code for arguments that have a variably modified type.
...
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@61288 91177308-0d34-0410-b5e6-96231b3b80d8
2008-12-20 21:28:43 +00:00
Fariborz Jahanian
4f5420d623
Add case for the new AST node.
...
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@61287 91177308-0d34-0410-b5e6-96231b3b80d8
2008-12-20 21:06:28 +00:00