Граф коммитов

7137 Коммитов

Автор SHA1 Сообщение Дата
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