Sebastian Redl
6ef75e9ee8
Make RegionStoreManager::InitializeArray safe against array sizes that don't have pointer width.
...
This may be the case on 64-bit systems. Whether that fact is a bug is a different question, but it's easy to cure the symptom.
llvm-svn: 60422
2008-12-02 16:47:35 +00:00
Sebastian Redl
db36b9b962
Make the parser handle ::new and ::delete correctly.
...
llvm-svn: 60421
2008-12-02 16:35:44 +00:00
Sebastian Redl
fb5df7235a
int-arith-convert.c makes assumptions about integer sizes, so force a specific architecture
...
llvm-svn: 60420
2008-12-02 16:34:01 +00:00
Eli Friedman
39bc53593d
Update cmake build; patch by Csaba Hruska.
...
llvm-svn: 60418
2008-12-02 16:23:30 +00:00
Steve Naroff
003d00eea3
Simplify previous commit.
...
llvm-svn: 60416
2008-12-02 16:05:55 +00:00
Eli Friedman
e918435f94
Fix for PR3150: obvious copy-paste bug in
...
ScalarExprEmitter::VisitBinLOr.
llvm-svn: 60415
2008-12-02 16:02:46 +00:00
Steve Naroff
9af949105a
More work to rewrite synthesize properties (<rdar://problem/6213955>)
...
llvm-svn: 60414
2008-12-02 15:48:25 +00:00
Sebastian Redl
351bb78a10
Handle new by passing the Declaration to the Action, not a processed type.
...
llvm-svn: 60413
2008-12-02 14:43:59 +00:00
Tilmann Scheller
318ccb0e62
make it possible to custom lower TRUNCATE (needed for the CellSPU target)
...
llvm-svn: 60409
2008-12-02 12:12:25 +00:00
Chris Lattner
1db9bbe802
Implement PRE of loads in the GVN pass with a pretty cheap and
...
straight-forward implementation. This does not require any extra
alias analysis queries beyond what we already do for non-local loads.
Some programs really really like load PRE. For example, SPASS triggers
this ~1000 times, ~300 times in 255.vortex, and ~1500 times on 403.gcc.
The biggest limitation to the implementation is that it does not split
critical edges. This is a huge killer on many programs and should be
addressed after the initial patch is enabled by default.
The implementation of this should incidentally speed up rejection of
non-local loads because it avoids creating the repl densemap in cases
when it won't be used for fully redundant loads.
This is currently disabled by default.
Before I turn this on, I need to fix a couple of miscompilations in
the testsuite, look at compile time performance numbers, and look at
perf impact. This is pretty close to ready though.
llvm-svn: 60408
2008-12-02 08:16:11 +00:00
Nick Lewycky
4d9966dd2d
Add a new SCEV representing signed division.
...
llvm-svn: 60407
2008-12-02 08:05:48 +00:00
Mon P Wang
6e1c6ad127
Removed some unnecessary code in widening.
...
llvm-svn: 60406
2008-12-02 07:35:08 +00:00
Chris Lattner
9c1b5027e7
add a little helper function that does PHI translation.
...
llvm-svn: 60405
2008-12-02 07:16:45 +00:00
Chris Lattner
0cdc0bbb8a
add a note
...
llvm-svn: 60404
2008-12-02 06:32:34 +00:00
Bill Wendling
87beb9b909
Remove some errors that crept in. No functionality change.
...
llvm-svn: 60403
2008-12-02 06:24:20 +00:00
Bill Wendling
790b4bf9a9
Merge two if-statements into one.
...
llvm-svn: 60402
2008-12-02 06:22:04 +00:00
Bill Wendling
5635295266
More styalistic changes. No functionality change.
...
llvm-svn: 60401
2008-12-02 06:18:11 +00:00
Chris Lattner
734e72fb51
add densemap range insertion method.
...
llvm-svn: 60400
2008-12-02 06:08:04 +00:00
Bill Wendling
85de4b35ca
- Remove the buggy -X/C -> X/-C transform. This isn't valid when X isn't a
...
constant. If X is a constant, then this is folded elsewhere.
- Added a note to Target/README.txt to indicate that we'd like to implement
this when we're able.
llvm-svn: 60399
2008-12-02 05:12:47 +00:00
Bill Wendling
5369db5917
Improve comment.
...
llvm-svn: 60398
2008-12-02 05:09:00 +00:00
Bill Wendling
21716dff5e
- Reduce nesting.
...
- No need to do a swap on a canonicalized pattern.
No functionality change.
llvm-svn: 60397
2008-12-02 05:06:43 +00:00
Chris Lattner
ead1a61b47
some random comment improvements.
...
llvm-svn: 60395
2008-12-02 04:52:26 +00:00
Owen Anderson
35bd70c07a
Add a test for my previous PRE fix.
...
llvm-svn: 60394
2008-12-02 04:25:42 +00:00
Owen Anderson
d930420ccf
Fix an issue that Chris noticed, where local PRE was not properly instantiating
...
a new value numbering set after splitting a critical edge. This increases
the number of instances of PRE on 403.gcc from ~60 to ~570.
llvm-svn: 60393
2008-12-02 04:09:22 +00:00
Evan Cheng
1718fd4375
Fix PR3124: overly strict assert.
...
llvm-svn: 60392
2008-12-02 02:15:36 +00:00
Dale Johannesen
8c76670b5a
Add a few more transformations.
...
llvm-svn: 60391
2008-12-02 01:30:54 +00:00
Ted Kremenek
817737a002
Add FIXME.
...
llvm-svn: 60390
2008-12-02 01:26:07 +00:00
Eli Friedman
f5d08c9ee4
Disabling this code due to regression on test/CodeGen/bitfield.c. See
...
PR3152.
llvm-svn: 60389
2008-12-02 01:17:45 +00:00
Bill Wendling
30e9dc81c8
Second stab at target-dependent lowering of everyone's favorite nodes: [SU]ADDO
...
- LowerXADDO lowers [SU]ADDO into an ADD with an implicit EFLAGS define. The
EFLAGS are fed into a SETCC node which has the conditional COND_O or COND_C,
depending on the type of ADDO requested.
- LowerBRCOND now recognizes if it's coming from a SETCC node with COND_O or
COND_C set.
llvm-svn: 60388
2008-12-02 01:06:39 +00:00
Douglas Gregor
f558618fa4
A little more scaffolding for parsing templates:
...
- Template parameter scope to hold the template parameters
- Template parameter context for parsing declarators
- Actions for template type parameters and non-type template
parameters
llvm-svn: 60387
2008-12-02 00:41:28 +00:00
Fariborz Jahanian
015a48d1db
This patch corrects problem in searching for a setter/getter method for
...
a property. Previous scheme of seaching in interface's list of methods
would not work because this list is not yet constructed. This is in preparation
for doing semantic check on viability of setter/getter method declarations.
llvm-svn: 60386
2008-12-02 00:19:12 +00:00
Bill Wendling
122c515809
Reapply r60382. This time, don't mark "ADC" nodes with "implicit EFLAGS".
...
llvm-svn: 60385
2008-12-02 00:07:05 +00:00
Douglas Gregor
eb31f39558
Basic support for parsing templates, from Andrew Sutton
...
llvm-svn: 60384
2008-12-01 23:54:00 +00:00
Bill Wendling
351b6659ad
Temporarily revert r60382. It caused CodeGen/X86/i2k.ll and others to fail.
...
llvm-svn: 60383
2008-12-01 23:44:08 +00:00
Bill Wendling
a435b1aebc
- Have "ADD" instructions return an implicit EFLAGS.
...
- Add support for seto, setno, setc, and setnc instructions.
llvm-svn: 60382
2008-12-01 23:30:42 +00:00
Bill Wendling
2d59863d06
Expand getVTList, getNodeValueTypes, and SelectNodeTo to handle more value types.
...
llvm-svn: 60381
2008-12-01 23:28:22 +00:00
Douglas Gregor
da747baa3c
Improve error recovery when parsing a function definition fails
...
llvm-svn: 60380
2008-12-01 23:03:32 +00:00
Douglas Gregor
b690cbb928
Initialize storage class even if we got an erroneous mutable
...
llvm-svn: 60377
2008-12-01 22:46:22 +00:00
Chris Lattner
b2f131a4ab
Add rdar reference, make this actually fail when the patch isn't applied.
...
llvm-svn: 60376
2008-12-01 22:35:31 +00:00
Dale Johannesen
069a4eee55
Consider only references to an IV within the loop when
...
figuring out the base of the IV. This produces better
code in the example. (Addresses use (IV) instead of
(BASE,IV) - a significant improvement on low-register
machines like x86).
llvm-svn: 60374
2008-12-01 22:00:01 +00:00
Douglas Gregor
90abb6dead
Objective-C keywords are not always identifiers. Some are also C++ keywords
...
llvm-svn: 60373
2008-12-01 21:46:47 +00:00
Douglas Gregor
dce30aa0f9
Fix RUN line
...
llvm-svn: 60372
2008-12-01 21:17:52 +00:00
Chris Lattner
fd2a76170c
reenable array_pod_sort, this time hopefully happy on 64-bit
...
and big endian systems.
llvm-svn: 60371
2008-12-01 21:11:25 +00:00
Bill Wendling
6f71bce4cf
Don't rebuild RHSNeg. Just use the one that's already there.
...
llvm-svn: 60370
2008-12-01 21:06:30 +00:00
Bill Wendling
84f6f2539f
Document what this check is doing. Also, no need to cast to ConstantInt.
...
llvm-svn: 60369
2008-12-01 21:03:43 +00:00
Steve Naroff
e1908e393e
-Add several ObjC types to Decl::getDeclKindName(), a useful debug hook.
...
-Start adding support for rewriting @synthesize.
llvm-svn: 60368
2008-12-01 20:33:01 +00:00
Douglas Gregor
e912266bdb
Test blocks in C++ mode
...
llvm-svn: 60367
2008-12-01 19:48:06 +00:00
Bill Wendling
e6c87a4952
Use a simple comparison. Overflow on integer negation can only occur when the
...
integer is "minint".
llvm-svn: 60366
2008-12-01 19:46:27 +00:00
Chris Lattner
e74e210a3f
don't #include <algorithm> into the llvm namespace.
...
llvm-svn: 60365
2008-12-01 19:45:45 +00:00
Douglas Gregor
95c326d14a
Use EmitInt, not Emit, to emit unsigned values
...
llvm-svn: 60364
2008-12-01 19:45:16 +00:00