Daniel Dunbar
ad3cdc2ba7
Synthesize property setter method as we do for getter.
...
- Also, fix Parser to construct proper SetterName selector (should be
lifted out of parser though).
llvm-svn: 55352
2008-08-26 02:32:45 +00:00
Dan Gohman
2e834906b9
Actually recycle SDNode allocations. SelectionDAG is using
...
RecyclingAllocator, but this change is needed for the nodes
to actually be recycled. This cuts SelectionDAG's memory
usage high-water-mark in half in some cases.
llvm-svn: 55351
2008-08-26 01:44:34 +00:00
Dan Gohman
cf3e3017c8
Avoid a warning about isTargetNullPtr being unused in release builds.
...
llvm-svn: 55350
2008-08-26 01:38:29 +00:00
Owen Anderson
6f2db7238b
Throw the switch to allow FastISel to emit instructions whose return types different from their inputs. Next step: adding lowering pattens in FastISel that actually use these newly available opcodes.
...
llvm-svn: 55349
2008-08-26 01:22:59 +00:00
Evan Cheng
4884f87822
This is done.
...
llvm-svn: 55348
2008-08-26 01:13:44 +00:00
Owen Anderson
5f334d8215
Enhance TableGen to emit code for FastISel of opcodes with variadic return types without slowing down opcodes that are not variadic. No such opcodes are currently generated, but in theory it should be a matter of just hitting the switch.
...
llvm-svn: 55347
2008-08-26 00:42:26 +00:00
Daniel Dunbar
40bf7fe20e
In incompatible pointer-typed ?: expressions, add implicit conversion
...
of RHSs to id type instead of void* if either has Objective-C object
type.
- This ensures the result can still be used in normal places an
object can be used, like a message send.
Add implicit conversions for ?: applied to qualified id types to
ensure that the RHSs are compatible.
- This prevents a codegen crash (creating invalid PHI nodes).
- Again, this relates to the fact that qualified id types have no
canonical types.
- Note that the implicit type casted to is incorrect, however this
doesn't currently cause problems because of the flexibility of the
id type.
Test cases for above.
llvm-svn: 55346
2008-08-26 00:41:39 +00:00
Owen Anderson
8dd01ccdd8
Add a RetVT parameter to emitted FastISel methods, so that we will be able to pass the desired return
...
type down. This is not currently used.
llvm-svn: 55345
2008-08-25 23:58:18 +00:00
Owen Anderson
5952cca7d1
Deepen the map structure tablegen uses to compute FastISel patterns, in preparation for having patterns
...
with return types that differ from their input types. This is not yet used.
llvm-svn: 55344
2008-08-25 23:43:09 +00:00
Dale Johannesen
d4eb0521e4
Implement 32 & 64 bit versions of PPC atomic
...
binary primitives.
llvm-svn: 55343
2008-08-25 22:34:37 +00:00
Evan Cheng
2c067325d6
Unbreak build.
...
llvm-svn: 55342
2008-08-25 22:20:39 +00:00
Evan Cheng
2da2e65d7d
80 col. violations.
...
llvm-svn: 55341
2008-08-25 21:58:43 +00:00
Owen Anderson
126afc5cb9
Expand bitcast support in fast isel to support bitcasts of non-constant values by emitting reg-reg copies.
...
llvm-svn: 55340
2008-08-25 21:32:34 +00:00
Eli Friedman
3d421e190a
Do typechecking and codegen for K&R-style function declarations
...
correctly. Not a regression, but made more obvious by my recent fix
which made function type compatibility checking a bit more strict.
llvm-svn: 55339
2008-08-25 21:31:01 +00:00
Evan Cheng
f00f1e50b5
Try approach to moving call address load inside of callseq_start. Now it's done during the preprocess of x86 isel. callseq_start's chain is changed to load's chain node; while load's chain is the last of callseq_start or the loads or copytoreg nodes inserted to move arguments to the right spot.
...
llvm-svn: 55338
2008-08-25 21:27:18 +00:00
Ted Kremenek
92adb8d605
Update checker build.
...
llvm-svn: 55337
2008-08-25 21:27:06 +00:00
Dale Johannesen
765065c982
Remove PPC-specific lowering for atomics; the
...
generic stuff works fine.
Mark rewritten cmp-and-swap as not using CR1.
llvm-svn: 55336
2008-08-25 21:09:52 +00:00
Eli Friedman
0a2ba3f10b
Fix for PR2720; be a little bit more permissive in initializers for
...
casting pointers to integers.
Eventually, we should check whether we can evaluate an expression
using Expr::tryEvaluate, and this codepath should be tightened to only
handle standard-compliant cases.
llvm-svn: 55331
2008-08-25 20:46:57 +00:00
Daniel Dunbar
f2e69888c5
Support __PRETTY_FUNCTION__ and friends in Obj-C methods.
...
Add CodeGenFunction::EmitUnsupportedLValue
- Gives error and returns undef value.
Swap some asserts() over to using EmitUnsupportedLValue
- Rumor has it users (and even some developers) prefer carat
diagnostics to backtraces.
- Works better in Release-Asserts to boot.
llvm-svn: 55328
2008-08-25 20:45:57 +00:00
Ted Kremenek
715ac7c51e
Use path information from .info files when computing common prefix information.
...
This partially implements PR 2705: http://llvm.org/bugs/show_bug.cgi?id=2705
llvm-svn: 55327
2008-08-25 20:45:07 +00:00
Ted Kremenek
6aa1ad0a7b
Use the same 'cc' for generated preprocessed crash files as we do for compilation.
...
llvm-svn: 55326
2008-08-25 20:44:31 +00:00
Owen Anderson
32635dbfb2
Add support for fast isel of (integer) immediate materialization pattens, and use them to support
...
bitcast of constants in fast isel.
llvm-svn: 55325
2008-08-25 20:20:32 +00:00
Ted Kremenek
a3b3c86a47
ccc-analyzer now correctly reports the exit code from 'cc'.
...
scan-build now correctly reports the exit code from the build command.
Fixes: <rdar://problem/6172224>
llvm-svn: 55324
2008-08-25 20:10:45 +00:00
Daniel Dunbar
8d57244601
Add test case for function-pointer-cast-of-global as constant
...
expression.
llvm-svn: 55323
2008-08-25 20:08:27 +00:00
Ted Kremenek
a968d42be0
Update Xcode project.
...
llvm-svn: 55322
2008-08-25 19:33:19 +00:00
Ted Kremenek
2a2c875b9c
Added 'extents' for Regions.
...
Added 'getExtent()' to StoreManager.
Implemented 'getExtent()' for BasicStoreManager.
llvm-svn: 55321
2008-08-25 19:33:03 +00:00
Dale Johannesen
17d5be2d0a
Adjust grep's for new code sequence.
...
llvm-svn: 55320
2008-08-25 18:53:58 +00:00
Dale Johannesen
166d6cb1fa
It's important for the cmp-and-swap to balance
...
loads and stores but it's even more important for
it to store the right value.:(
llvm-svn: 55319
2008-08-25 18:53:26 +00:00
Bill Wendling
6cfd3830fb
Nevermind. This broke the bootstrap (?!).
...
llvm-svn: 55318
2008-08-25 18:32:39 +00:00
Bill Wendling
dd6759aea7
MOVQ2DQ and MOVQ2DQ use SSE2. We should conditionalize the use of these
...
instructions on having SSE2.
llvm-svn: 55317
2008-08-25 18:20:52 +00:00
Anders Carlsson
1ec2ccd8ee
Objective-C foreach selector elements must be lvalues.
...
llvm-svn: 55316
2008-08-25 18:16:36 +00:00
Chris Lattner
dab9425547
Fix pasto (values -> types) noticed by Josh Conner
...
llvm-svn: 55315
2008-08-25 17:03:15 +00:00
Daniel Dunbar
ef957f3489
Change another is-a-pointer check to check in terms of LLVM type.
...
llvm-svn: 55312
2008-08-25 10:38:11 +00:00
Daniel Dunbar
427f873196
Do is-a-pointer checks in terms of LLVM types in
...
EmitScalarConversion().
- Important for allowing Obj-C void * to id<X> casts and so on.
- Not sure about this fix however, perhaps Type should understand
that id is effectively a pointer type.
llvm-svn: 55311
2008-08-25 09:51:32 +00:00
Daniel Dunbar
81128e04e7
Stop asserting in TargetInfo::validateInputConstraint
...
- Sema gives a perfectively nice error message on invalid constraints.
llvm-svn: 55310
2008-08-25 09:46:27 +00:00
Daniel Dunbar
ca8531a2d7
Fix Obj-C super sends inside class methods.
...
- NeXT loads the super class at runtime; this required changing the
runtime interface to pass more information down.
llvm-svn: 55307
2008-08-25 08:19:24 +00:00
Daniel Dunbar
236e02c62c
Name struct types generated for Obj-C classes.
...
llvm-svn: 55304
2008-08-25 06:28:15 +00:00
Daniel Dunbar
eb99810502
Use DenseMap on IdentifierInfo instead of StringMap.
...
llvm-svn: 55303
2008-08-25 06:18:57 +00:00
Daniel Dunbar
c61d0e9ee9
NeXT: Emit symbols used to manage linking of Obj-C classes.
...
- This ensures that references to undefined classes cause link
errors.
- NOTE: This relies on platform specific asm directives currently,
this should be factored out.
Also, don't emit a SYMBOLS metadata entry if there are no symbols.
llvm-svn: 55302
2008-08-25 06:02:07 +00:00
Chris Lattner
820eebc5a8
flush stream after dumping.
...
llvm-svn: 55301
2008-08-25 04:55:46 +00:00
Evan Cheng
e414681352
Fix asm printing of MOVSDto64mr and MOV64toSDrm.
...
llvm-svn: 55300
2008-08-25 04:11:42 +00:00
Anders Carlsson
ab55d9cd74
Handle emitting __builtin_huge_valf as a constant expr.
...
llvm-svn: 55299
2008-08-25 03:27:15 +00:00
Anders Carlsson
c13b85a6b8
Make code generation of ivar ref exprs more like member exprs.
...
llvm-svn: 55298
2008-08-25 01:53:23 +00:00
Anders Carlsson
4c03d98e45
Handle static variables inside obj-c methods.
...
llvm-svn: 55297
2008-08-25 01:38:19 +00:00
Bill Wendling
934b374bc8
Fix this test. Don't null out the file, just XFAIL it until patch can be fixed.
...
llvm-svn: 55296
2008-08-24 21:48:46 +00:00
Bill Wendling
5b836c5f77
Temporarily reverting r55292. It's causing a bootstraping failure:
...
/Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvm-gcc.obj/./gcc/xgcc ... src/libiberty/make-temp-file.c -o make-temp-file.o
Assertion failed: (Node2Index[SU->NodeNum] > Node2Index[I->Dep->NodeNum] && "Wrong topological sorting"), function InitDAGTopologicalSorting, file /Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvm.src/lib/CodeGen/SelectionDAG/ScheduleDAGRRList.cpp, line 508.
../../../../llvm-gcc.src/libiberty/hashtab.c:955: internal compiler error: Abort trap
Please submit a full bug report,
with preprocessed source if appropriate.
See <URL:http://developer.apple.com/bugreporter > for instructions.
make[4]: *** [hashtab.o] Error 1
make[4]: *** Waiting for unfinished jobs....
make[3]: *** [multi-do] Error 1
make[2]: *** [all] Error 2
make[1]: *** [all-target-libiberty] Error 2
make: *** [all] Error 2
llvm-svn: 55295
2008-08-24 21:45:30 +00:00
Chris Lattner
25852069ed
remove the type checking logic already done by tblgen, just keep the
...
parts tblgen doesn't do (checking for constant, alloca, enclosing
function has gc marker). This passes dj! :)
llvm-svn: 55294
2008-08-24 20:46:13 +00:00
Chris Lattner
a078d83e17
simplify PseudoSourceValue printing a bit. Unnest all of PseudoSourceValue.cpp from the llvm namespace.
...
llvm-svn: 55293
2008-08-24 20:37:32 +00:00
Evan Cheng
8fa17424f7
Move callseq_start above the call address load to allow load to be folded into the call node.
...
llvm-svn: 55292
2008-08-24 19:19:55 +00:00
Evan Cheng
72e7d91591
Print PseudoSourceValue.
...
llvm-svn: 55291
2008-08-24 18:51:20 +00:00