Fariborz Jahanian
4f4de6c27f
Some refactoring of recent code. No functionality change.
...
llvm-svn: 66041
2009-03-04 18:15:57 +00:00
Fariborz Jahanian
c2371eadd6
Fix a corner case of message lookup looking for class methods.
...
If all else failed, find the message in class's root's
list of instacne methods!
llvm-svn: 66040
2009-03-04 17:50:39 +00:00
Daniel Dunbar
5b9e9682f1
Support "asm" renaming of external symbols.
...
- PR3698.
llvm-svn: 66038
2009-03-04 17:31:19 +00:00
Daniel Dunbar
3e2cbc3161
Driver: Add ArgList implementation.
...
llvm-svn: 66037
2009-03-04 17:10:42 +00:00
Ted Kremenek
79fa6a24b7
GRExprEngine::VisitCast: Just pass through function and block pointers.
...
llvm-svn: 66036
2009-03-04 16:52:57 +00:00
Mike Stump
376e3c0347
Start the migration of more of the blocks code out of sight for most
...
people. De-duplicates BLOCK_NEEDS_FREE and friends.
llvm-svn: 66035
2009-03-04 15:35:22 +00:00
Mike Stump
edb252aeba
Start the migration of more of the blocks code out of sight for most
...
people. De-duplicates BLOCK_NEEDS_FREE and friends.
llvm-svn: 66034
2009-03-04 15:32:52 +00:00
Steve Naroff
3f49feeed5
Finish up some fixes related to <rdar://problem/6497631> Message lookup is sometimes different than gcc's.
...
- Disallow casting 'super'. GCC allows this, however it doesn't make sense (super isn't an expression and the cast won't alter lookup/dispatch).
- Tighten up lookup when messaging 'self'.
llvm-svn: 66033
2009-03-04 15:11:40 +00:00
Mike Stump
0874160bd5
Add __block codegen testcase. We introduce a temporary flag to enable
...
codegen, until such time as codegen is complete enough to turn on with
-fblocks.
llvm-svn: 66031
2009-03-04 13:17:22 +00:00
Daniel Dunbar
5637208a88
Driver: More Option implementation.
...
- Add Options.def file, collects option information.
- Actual option instantiation is handled lazily by OptTable to allow
the driver to not need to instantiate all options.
- cast<> support for Option, other minor tweaks.
llvm-svn: 66028
2009-03-04 08:33:23 +00:00
Eli Friedman
9ad7244f5b
Check that the return type for function definitions is complete.
...
llvm-svn: 66027
2009-03-04 07:30:59 +00:00
Chris Lattner
8322dc809e
make the token lexer allocate its temporary token buffers for
...
preexpanded macro arguments from the preprocessor's bump pointer.
This reduces # mallocs from 12444 to 11792.
llvm-svn: 66025
2009-03-04 06:50:57 +00:00
Chris Lattner
9631e1871e
Switch attributes to be allocated from the declcontext bump pointer just like
...
decls. This reduces the number of calls to malloc on cocoa.h with pth and
-disable-free from 15958 to 12444 times (down ~3500).
llvm-svn: 66023
2009-03-04 06:34:08 +00:00
Zhongxing Xu
7d41c616f1
Adjust indentation.
...
llvm-svn: 66022
2009-03-04 06:33:38 +00:00
Chris Lattner
9a2d50e7fd
add an a Attr::Destroy method and force clients to go through it. As part of
...
this, make DeclBase::Destroy destroy attributes instead of the DeclBase dtor.
llvm-svn: 66020
2009-03-04 06:05:19 +00:00
Eli Friedman
f22fa28522
Make this test a bit more specific about the target so that it passes on
...
Linux.
llvm-svn: 66019
2009-03-04 06:00:10 +00:00
Eli Friedman
e0a5b8b11f
Minor cleanup for choose expressions: add a helper that returns the
...
chosen sub-expression, rather than just evaluating the condition.
llvm-svn: 66018
2009-03-04 05:52:32 +00:00
Chris Lattner
1a84994c46
allocate MultiKeywordSelector's out of a bump pointer allocator instead of malloc.
...
This has two advantages 1) no more leaking them, 2) fewer calls to malloc.
This changes us from calling malloc 3685/1390/883/2974/1185 times respectively on
16/20/24/28/32 byte objects when parsing cocoa.h with pth and -disable-free to
calling it 2816/1020/702/2903/1168 times each respectively.
llvm-svn: 66017
2009-03-04 05:35:38 +00:00
Chris Lattner
7b26b29351
simplify Sema::AddInstanceMethodToGlobalPool, no functionality change.
...
llvm-svn: 66016
2009-03-04 05:16:45 +00:00
Chris Lattner
4192bce91b
add a special case for codegen that improves the case where we have
...
multiple sequential cases to a) not create tons of fall-through basic blocks
and b) not recurse deeply. This fixes codegen on 100K deep cases, and improves
codegen on moderate cases from this:
switch i32 %tmp, label %sw.epilog [
i32 1000, label %sw.bb
i32 1001, label %sw.bb1
i32 1002, label %sw.bb2
i32 1003, label %sw.bb3
i32 1004, label %sw.bb4
...
sw.bb: ; preds = %entry
br label %sw.bb1
sw.bb1: ; preds = %entry, %sw.bb
br label %sw.bb2
sw.bb2: ; preds = %entry, %sw.bb1
br label %sw.bb3
sw.bb3: ; preds = %entry, %sw.bb2
br label %sw.bb4
to:
switch i32 %tmp, label %sw.epilog [
i32 1000, label %sw.bb
i32 1001, label %sw.bb
i32 1002, label %sw.bb
i32 1003, label %sw.bb
i32 1004, label %sw.bb
sw.bb: ;; many preds
llvm-svn: 66015
2009-03-04 04:46:18 +00:00
Chris Lattner
9bbf1ba1e6
fix infinite recursion
...
llvm-svn: 66014
2009-03-04 04:30:02 +00:00
Chris Lattner
e46f6e7d9c
make CaseStmt::getSourceRange() iterative for deeply
...
nested cases instead of recursive.
llvm-svn: 66013
2009-03-04 04:26:45 +00:00
Eli Friedman
3efa41a478
Continuation of PR3687: fix more places to use the right type for
...
booleans.
llvm-svn: 66012
2009-03-04 04:25:14 +00:00
Chris Lattner
34a2209177
Change Parser::ParseCaseStatement to use an iterative approach to parsing
...
multiple sequential case statements instead of doing it with recursion. This
fixes a problem where we run out of stack space parsing 100K directly nested
cases.
There are a couple other problems that prevent this from being useful in
practice (right now the example only parses correctly with -disable-free and
doesn't work with -emit-llvm), but this is a start.
I'm not including a testcase because it is large and uninteresting for
regtesting.
Sebastian, I would appreciate it if you could scrutinize the smart pointer
gymnastics I do.
llvm-svn: 66011
2009-03-04 04:23:07 +00:00
Eli Friedman
a1493b3b4d
Comment fix: change a question to an answer.
...
llvm-svn: 66010
2009-03-04 04:22:58 +00:00
Eli Friedman
42d2a3add6
Attempt to fix PR3709: when converting from an integer to a pointer,
...
first extend the integer to the correct width.
llvm-svn: 66009
2009-03-04 04:02:35 +00:00
Mike Stump
97d01d50d9
Improved ABI compliance for __block variables. No testcases yet as we
...
still give an unsupported error for them due to the fact this is a
work in progress.
llvm-svn: 66007
2009-03-04 03:23:46 +00:00
Ted Kremenek
d275bf3c54
Added the notion of a "boundable region", which is a region that can have a direct binding in the StoreManager.
...
llvm-svn: 66005
2009-03-04 02:43:08 +00:00
Daniel Dunbar
14a41c5e98
Add some more FIXME's about bits we could pack better.
...
llvm-svn: 66003
2009-03-04 02:27:50 +00:00
Daniel Dunbar
47076e7155
Woot, save 8 bytes in Decl on 64-bit by reordering fields. This
...
reduces allocated Decl size by ~8% on Cocoa.h (~700k).
llvm-svn: 66002
2009-03-04 02:26:41 +00:00
Ted Kremenek
d69e29e8c4
This test now passes using RegionStore.
...
llvm-svn: 65988
2009-03-04 00:23:28 +00:00
Ted Kremenek
52170722ec
RegionStore: Handle implicit parameters.
...
llvm-svn: 65987
2009-03-04 00:23:05 +00:00
Ted Kremenek
74a2d0f8ca
Create "TypedViewRegions" that layer on top of SymbolicRegions when handling
...
pointer-to-pointer casts involving symbolic locations.
llvm-svn: 65984
2009-03-04 00:14:35 +00:00
Ted Kremenek
804fc236a7
Use GetSValAsScalarOrLoc instead of GetSVal to prevent unintended structure or array "loads".
...
llvm-svn: 65983
2009-03-04 00:13:50 +00:00
Ted Kremenek
19df925f6b
Add "GetSValAsScalarOrLoc" methods to GRState/GRStateRef that only perform a
...
retrieval from the store/environment for locations or scalar types.
llvm-svn: 65982
2009-03-04 00:13:10 +00:00
Ted Kremenek
67c710e2c8
RegionStore::RemoveDeadBindings needs to check all the symbols of the super region of a scanned region as well.
...
llvm-svn: 65981
2009-03-04 00:11:38 +00:00
Daniel Dunbar
817b7692fb
Add new performance numbers; no discussion yet. Obvious two
...
conclusions are our PCH generation is way faster than gcc, and the
Python based driver kills compile times.
llvm-svn: 65980
2009-03-04 00:04:28 +00:00
Steve Naroff
013813dd5d
Change a warning to an error...
...
llvm-svn: 65978
2009-03-03 23:13:51 +00:00
Fariborz Jahanian
9a8e759b4f
Implement an important missing warning when a selector
...
is searched for in the global pool. It already uncovered
a clang bug in message selection.
llvm-svn: 65974
2009-03-03 22:19:15 +00:00
Steve Naroff
c03f6b91b1
Fix <rdar://problem/5982579> [clang on xcode] (using arch=x86_64): synthesized property 'sdkPath' must either be named the same as a compatible ivar or must explicitly name an ivar.
...
llvm-svn: 65973
2009-03-03 22:09:41 +00:00
Ted Kremenek
c9747dd60f
Rework use of loc::SymbolVal in the retain/release checker to use the new method
...
SVal::getAsLocSymbol(). This simplifies the code and allows the retain/release
checker to (I believe) also correctly reason about location symbols wrapped in
SymbolicRegions.
Along the way I cleaned up SymbolRef a little, disallowing implicit casts to
'unsigned'.
llvm-svn: 65972
2009-03-03 22:06:47 +00:00
Steve Naroff
27ed6f6766
Fix <rdar://problem/6252237> [sema] qualified id should be disallowed in @catch statements.
...
llvm-svn: 65969
2009-03-03 21:16:54 +00:00
Steve Naroff
39d6fba0d6
Fix <rdar://problem/6632061> [sema] non object types should not be allowed in @catch statements.
...
llvm-svn: 65968
2009-03-03 20:59:06 +00:00
Chris Lattner
5c3529634a
implement support for propagating *features* down to the code generator
...
and defining target-specific macros based on them (like __SSE3__ and
friends). After extensive discussion with Daniel, this work will need
driver support, which will translate things like -msse3 into a -mattr
feature. Until this work is done, the code in clang.cpp is disabled and
the X86TargetInfo ctor still defaults to SSE2. With these two things
changed, this code will work. PR3634
llvm-svn: 65966
2009-03-03 19:56:18 +00:00
Steve Naroff
371b8fb4c3
Fix <rdar://problem/6640991> Exception handling executes wrong clause (Daniel, please verify).
...
Also necessary to fix:
<rdar://problem/6632061> [sema] non object types should not be allowed in @catch statements
<rdar://problem/6252237> [sema] qualified id should be disallowed in @catch statements
llvm-svn: 65964
2009-03-03 19:52:17 +00:00
Ted Kremenek
9f276d6279
Don't use std::auto_ptr with getSubRegionMap().
...
llvm-svn: 65957
2009-03-03 19:02:42 +00:00
Ted Kremenek
e3852bd252
Fix case where we should use dyn_cast instead of cast.
...
llvm-svn: 65956
2009-03-03 19:01:37 +00:00
Fariborz Jahanian
eab5ecd8e0
Fixed an ir-gen bug in syntheszing a getter function
...
with property type which does not match its ivar and
in -fobjc-gc-only mode!
llvm-svn: 65955
2009-03-03 18:49:40 +00:00
Ted Kremenek
5340b248b4
Fix extra ';' bug noticed by Mike Stump.
...
llvm-svn: 65954
2009-03-03 18:15:30 +00:00
Daniel Dunbar
cabb41d15a
Hush gcc.
...
llvm-svn: 65952
2009-03-03 16:54:38 +00:00