Commit Graph

51745 Commits

Author SHA1 Message Date
Owen Anderson 164274eeb1 Don't forget to remove phi nodes from the value numbering table after we collapse them.
llvm-svn: 61358
2008-12-23 00:49:51 +00:00
Douglas Gregor 55297ac499 Don't explicitly represent OverloadedFunctionDecls within
DeclContext. Instead, just keep the list of currently-active
declarations and only build the OverloadedFunctionDecl when we
absolutely need it.

This is a half-step toward eliminating the need to explicitly build
OverloadedFunctionDecls that store sets of overloaded
functions. This was suggested by Argiris a while back, and it's a good
thing for several reasons: first, it eliminates the messy logic that
currently tries to keep the OverloadedFunctionDecl in sync with the 
declarations that are being added. Second, it will (eventually)
eliminate the need to allocate memory for overload sets, which could
help performance. Finally, it helps set us up for when name lookup can
return multiple (possibly ambiguous) results, as can happen with
lookup of class members in C++.

Next steps: make the IdentifierResolver store overloads as separate
entries in its list rather than replacing them with an
OverloadedFunctionDecl now, then see how far we can go toward
eliminating OverloadedFunctionDecl entirely.

llvm-svn: 61357
2008-12-23 00:26:44 +00:00
Dan Gohman d72358cba8 Make the fuse-failed debug output human-readable.
llvm-svn: 61356
2008-12-23 00:19:20 +00:00
Fariborz Jahanian daef00bca6 More encoding support; in this case, encoding of
outer-most const of pointer types.

llvm-svn: 61355
2008-12-22 23:22:27 +00:00
Bill Wendling 456e885382 Comment clean-ups. No functionality change.
llvm-svn: 61354
2008-12-22 22:32:22 +00:00
Bill Wendling e7f08e7250 Check that the instruction isn't in the value numbering scope.
llvm-svn: 61353
2008-12-22 22:28:56 +00:00
Bill Wendling 86f01cb9f6 Simplification: Negate the operator== method instead of implementing a full operator!= method.
llvm-svn: 61352
2008-12-22 22:16:31 +00:00
Steve Naroff 2654e18c84 Fix <rdar://problem/6463613> clang ObjC rewriter: assertion failure rewriting @selector?.
llvm-svn: 61351
2008-12-22 22:16:07 +00:00
Bill Wendling 3c793441cb Add verification that deleted instruction isn't hiding in the PHI map.
llvm-svn: 61350
2008-12-22 22:14:07 +00:00
Bill Wendling ebb6a543fa Verify removed in a few more places.
llvm-svn: 61349
2008-12-22 21:57:30 +00:00
Sebastian Redl 45f11a9b05 Guard against the return of PR3188
llvm-svn: 61348
2008-12-22 21:43:13 +00:00
Bill Wendling 6b18a3994b Add verification functions to GVN which check to see that an instruction was
truely deleted. These will be expanded with further checks of all of the data
structures.

llvm-svn: 61347
2008-12-22 21:36:08 +00:00
Sebastian Redl 9b244a8797 Full AST support and better Sema support for C++ try-catch.
llvm-svn: 61346
2008-12-22 21:35:02 +00:00
Dan Gohman 014caa431c Refactor a bunch of code out of AsmPrinter::EmitGlobalConstant into separate
functions.

llvm-svn: 61345
2008-12-22 21:14:27 +00:00
Dan Gohman a04542b61e Optimize setDepthDirty and setHeightDirty a little, as they showed
up on a profile.

llvm-svn: 61344
2008-12-22 21:11:33 +00:00
Dan Gohman a6fbc282b2 Add an assertion to the ScheduleDAGInstrs class to catch SUnits
reallocations. We don't do cloning on MachineInstr schedule DAGs,
but this is a worthwhile sanity check regardless.

llvm-svn: 61343
2008-12-22 21:08:08 +00:00
Dan Gohman fd87a5088e Add an accesor for the isNormalMemory field in the SDep class.
llvm-svn: 61342
2008-12-22 21:06:56 +00:00
Dan Gohman 7782de7525 Add an assertion to catch SUnits reallocations. And add a doxygen
comment for the ScheduleDAGSDNodes class.

llvm-svn: 61341
2008-12-22 21:06:20 +00:00
Douglas Gregor 79a6b01802 Support conversion from a null pointer constant o any Objective-C object pointer type. Fixes rdar://problem/6463298
llvm-svn: 61340
2008-12-22 20:51:52 +00:00
Fariborz Jahanian 8b2d1294db 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.

llvm-svn: 61339
2008-12-22 20:41:58 +00:00
Dan Gohman 9de060ebd2 Clarify a comment.
llvm-svn: 61338
2008-12-22 19:44:39 +00:00
Sebastian Redl 54c04d4700 Partial AST and Sema support for C++ try-catch.
llvm-svn: 61337
2008-12-22 19:15:10 +00:00
Fariborz Jahanian ed4c443193 Patch to remove bogus warning in case of @dynamic
property in a category and to issue diagnostics
for mismatch method in some other cases.

llvm-svn: 61336
2008-12-22 19:05:31 +00:00
Sebastian Redl 04253537dc Expr and Stmt must be destroyed with Destroy, not delete. Fixes PR/3245.
llvm-svn: 61335
2008-12-22 17:51:10 +00:00
Anders Carlsson c72502308d Fix test failures noticed by Fariborz.
llvm-svn: 61334
2008-12-22 17:42:23 +00:00
Zhongxing Xu 4ee570a4cb Fix initialization order.
llvm-svn: 61333
2008-12-22 08:30:52 +00:00
Anders Carlsson e5f993da3d Flip the switch and start using the new xmmintrin.h
llvm-svn: 61332
2008-12-22 07:36:02 +00:00
Anders Carlsson 27046fc4e6 Comment out _mm_insert_pi16 for now
llvm-svn: 61331
2008-12-22 07:34:23 +00:00
Anders Carlsson 5aa0c50e29 Implement the last intrinsics, _mm_insert_pi16 is the last remaining one now.
llvm-svn: 61330
2008-12-22 07:08:03 +00:00
Douglas Gregor 97fd6e24c4 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.

llvm-svn: 61329
2008-12-22 05:46:06 +00:00
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