Daniel Dunbar
dc95c69662
Formatting tweaks (trailing whitespace, ordering, comments).
...
llvm-svn: 96761
2010-02-21 21:53:37 +00:00
Daniel Dunbar
43b464cfe5
Remove unused includes.
...
llvm-svn: 96760
2010-02-21 21:47:19 +00:00
Douglas Gregor
6122e55813
De-XFAIL some win32 tests that are now passing
...
llvm-svn: 96759
2010-02-21 20:58:24 +00:00
Chris Lattner
26c79d13f2
fix an odd thinko in an assertion, all arm tests pass now.
...
llvm-svn: 96758
2010-02-21 20:57:28 +00:00
Chris Lattner
2bad7b0456
Always emit register class id references as i32 like
...
DAGISelEmitter does. This fixes 11 arm failures (8
left).
llvm-svn: 96757
2010-02-21 20:53:45 +00:00
Chris Lattner
745219ea64
add some no-unwinds, other minor cleanups.
...
llvm-svn: 96756
2010-02-21 20:33:20 +00:00
Anton Korobeynikov
31a9212b0b
It turned out that we failed to emit proper symbol stubs on non-x86/darwin for ages (we emitted a reference to a stub, but no stub was emitted). The code inside x86-32/macho target objfile lowering should actually be the generic one - move it there.
...
This (I really, really hope) should fix EH issues on ppc/darwin
and arm/darwin.
llvm-svn: 96755
2010-02-21 20:28:15 +00:00
Douglas Gregor
e61e24a5e3
Attempt to fix the MSVC9 failure with c-indext-test, where the CIndex DLL
...
and the c-index-test executable end up getting different copies of
stderr, causing non-deterministic ordering of output. Fixed by
flushing the file after printing a diagnostic (only on Windows).
llvm-svn: 96754
2010-02-21 20:15:42 +00:00
Chris Lattner
d410fc2cee
speculatively teach OPC_CheckValueType and OPC_EmitNode to handle
...
MVT::iPTR.
llvm-svn: 96753
2010-02-21 20:15:25 +00:00
Chris Lattner
436187c7ed
teach OPC_CheckType to handle MVT::iPTR, down to 2 ppc failures.
...
llvm-svn: 96752
2010-02-21 20:10:43 +00:00
Chris Lattner
d09d97cba4
make this check a bit more generous, it may be outliving its
...
utility. Down to 6 ppc failures.
llvm-svn: 96751
2010-02-21 20:02:15 +00:00
Chris Lattner
9492c6ee57
Relax an assertion a bit. We allow replacing things like
...
<4 x i32> with <4 x float> values if they end up the same
register class. This gets us up to 231 passes on the ppc
tests (only 7 fails).
llvm-svn: 96750
2010-02-21 19:35:07 +00:00
Chris Lattner
c43c88ebce
add a triple so that this doesn't fail due to linux/ppc register printing
...
syntax.
llvm-svn: 96748
2010-02-21 19:27:38 +00:00
Chris Lattner
8f40097073
Sort the patterns before adding them to the FA so that we get the
...
least cost matches. This gets us from 195 -> 208 passes on the ppc codegen tests.
llvm-svn: 96747
2010-02-21 19:22:06 +00:00
Duncan Sands
455201ba71
Remove a bunch of duplicated code, where there was one version taking a std::ostream
...
and another taking a raw_ostream, but otherwise identical. Use raw_ostream everywhere.
llvm-svn: 96746
2010-02-21 19:15:19 +00:00
Chris Lattner
53485469b4
filecheckize and add nouwinds.
...
llvm-svn: 96745
2010-02-21 18:53:28 +00:00
Jakob Stoklund Olesen
951d27e544
Enable assertion to detect cyclic valno references.
...
This changes the stack overflow in PR6363 to an assertion failure.
llvm-svn: 96744
2010-02-21 18:51:48 +00:00
Douglas Gregor
90d554ecb3
Implement support for parsing pseudo-destructor expression with a nested-name-specifier, e.g.,
...
typedef int Int;
int *p;
p->Int::~Int();
This weakens the invariant that the only types in nested-name-specifiers are tag types (restricted to class types in C++98/03). However, we weaken this invariant as little as possible, accepting arbitrary types in nested-name-specifiers only when we're in a member access expression that looks like a pseudo-destructor expression.
llvm-svn: 96743
2010-02-21 18:36:56 +00:00
Douglas Gregor
901e717f92
A constructor template cannot be used to copy to an object of the same class type (per C++ [class.copy]p3). Make sure that includes copies that involve a derived-to-base conversion. Fixes PR6141.
...
llvm-svn: 96742
2010-02-21 18:30:38 +00:00
Douglas Gregor
00eace1958
Implement AST import for C++ member functions, including constructors, destructors, and conversions. Unfortunately, this cannot be tested yet, since we don't have C++ PCH support.
...
llvm-svn: 96741
2010-02-21 18:29:16 +00:00
Douglas Gregor
f18a2c7dd1
Implement AST importing for C++ namespaces.
...
llvm-svn: 96740
2010-02-21 18:26:36 +00:00
Douglas Gregor
968d633176
Collect the code that imports all of the members of a declaration context into a single function, ImportDeclContext. Use it rather than explicit loops. No functionality change.
...
llvm-svn: 96739
2010-02-21 18:24:45 +00:00
Douglas Gregor
e31bbd904d
Implement PCH support for C++ namespaces.
...
llvm-svn: 96738
2010-02-21 18:22:14 +00:00
Anton Korobeynikov
e96503faa1
IT turns out that during jumpless setcc lowering eq and ne were swapped.
...
This fixes PR6348
llvm-svn: 96734
2010-02-21 12:28:58 +00:00
Chandler Carruth
8f2548112e
Commiting a revert from dgregor of a bit of destructor logic until we can
...
figure out how not to break lots of code using this. See PR6358 and PR6359 for
motivating examples. FIXME's left in the code and the test.
llvm-svn: 96733
2010-02-21 10:19:54 +00:00
Chris Lattner
4e5d6788b3
when a match fails and we have to rollback, make sure to keep 'N' in
...
sync with the top of stack. This fixes a bunch of failures on larger
testcases.
llvm-svn: 96732
2010-02-21 07:55:48 +00:00
Chris Lattner
1e29fcd067
handle optional in flags that aren't present.
...
llvm-svn: 96731
2010-02-21 07:19:06 +00:00
Chris Lattner
816f638f6b
emit table indexes before each row so that it is debuggable.
...
llvm-svn: 96730
2010-02-21 07:16:41 +00:00
Chandler Carruth
f50ef6ed9a
Make Decl::isOutOfLine() virtual, and use that to determine when definitions
...
are for out of line declarations more easily. This simplifies the logic and
handles the case of out-of-line class definitions correctly. Fixes PR6107.
llvm-svn: 96729
2010-02-21 07:08:09 +00:00
Chris Lattner
56ec789521
fix two bugs in OPC_EmitRegister, which makes ppc happier.
...
llvm-svn: 96728
2010-02-21 06:58:27 +00:00
Chris Lattner
eb3c0435b7
fix a table size miscomputation, target opcodes are 2 bytes.
...
With this, the matcher actually works reasonably well, but
crashes on larger examples in the scheduler.
llvm-svn: 96727
2010-02-21 06:44:29 +00:00
Chris Lattner
9f6c24ccd5
emit to the right streams, to avoid emitting the push
...
body before the push.
llvm-svn: 96726
2010-02-21 06:30:04 +00:00
Chris Lattner
55875c10d9
oops don't turn this on for everyone yet.
...
llvm-svn: 96725
2010-02-21 06:03:56 +00:00
Chris Lattner
79eaeb4cfe
implement the last known missing feature: updating uses of results
...
of the matched pattern to use the newly created node results. Onto
the "making it actually work" phase!
llvm-svn: 96724
2010-02-21 06:03:07 +00:00
Ted Kremenek
2fb89539f7
Clang really intends to reject attribute 'warn_unused_result' on Objective-C methods, but
...
instead it crashes on them. We might extend this attribute to work on methods, but for
now fix the crasher. Addresses <rdar://problem/7670939>.
llvm-svn: 96723
2010-02-21 05:15:32 +00:00
Ted Kremenek
1979007ca8
Don't emit a warning about a dllimport attribute being used in a typedef
...
when -fms-extensions is specified. Fixes <rdar://problem/7653870>.
llvm-svn: 96722
2010-02-21 05:12:56 +00:00
Ted Kremenek
a3cfc4d1e1
Don't warn about functions redeclared without the dllimport attribute when
...
-fms-extensions is enabled. Fixes <rdar://problem/7669559>.
llvm-svn: 96721
2010-02-21 05:12:53 +00:00
Chris Lattner
3c29aff9ff
fix and un-xfail X86/vec_ss_load_fold.ll
...
llvm-svn: 96720
2010-02-21 04:53:34 +00:00
Johnny Chen
a07c9c7c56
Undo r96654. The printing of ARM shift instructions in canonical forms can be
...
handled in ARMInstPrinter.cpp.
And added PLD/PLDW/PLI (Preload Data/Instruction) for disassembly only.
llvm-svn: 96719
2010-02-21 04:42:01 +00:00
Charles Davis
6184c63f16
Reduce size of 'StackAlignment' field from 5 to 3 bits. Seriously, who needs a
...
2GB-aligned stack anyway? 256 bytes is plenty. Requested by Chris.
llvm-svn: 96718
2010-02-21 04:26:06 +00:00
Chris Lattner
7d5f4a4c03
temporarily disable this.
...
llvm-svn: 96717
2010-02-21 03:24:41 +00:00
Chris Lattner
132df652a4
Lots of improvements to the new dagisel emitter. This gets it to
...
the point where it is to the 95% feature complete mark, it just
needs result updating to be done (then testing, optimization
etc).
More specificallly, this adds support for chain and flag handling
on the result nodes, support for sdnodexforms, support for variadic
nodes, memrefs, pinned physreg inputs, and probably lots of other
stuff.
In the old DAGISelEmitter, this deletes the dead code related to
OperatorMap, cleans up a variety of dead stuff handling "implicit
remapping" from things like globaladdr -> targetglobaladdr (which
is no longer used because globaladdr always needs to be legalized),
and some minor formatting fixes.
llvm-svn: 96716
2010-02-21 03:22:59 +00:00
Chris Lattner
18a32ce0f3
rename SelectScalarSSELoad -> SelectScalarSSELoadXXX and rewrite
...
it to follow the mode needed by the new isel. Instead of returning
the input and output chains, it just returns the (currently only one,
which is a silly limitation) node that has input and output chains.
Since we want the old thing to still work, add a new
SelectScalarSSELoad to emulate the old interface. The XXX suffix
and the wrapper will eventually go away.
llvm-svn: 96715
2010-02-21 03:17:59 +00:00
Chris Lattner
98b99aa401
add a hook so that the new isel can run SDNodeXForms.
...
llvm-svn: 96714
2010-02-21 03:15:11 +00:00
Chris Lattner
090d76a5b1
Eliminate some uses of immAllOnes, just use -1, it does
...
the same thing and is more efficient for the matcher.
llvm-svn: 96713
2010-02-21 03:13:10 +00:00
Chris Lattner
986ab3fb1d
Eliminate some uses of immAllOnes, just use -1, it does
...
the same thing and is more efficient for the matcher.
llvm-svn: 96712
2010-02-21 03:12:16 +00:00
Tanya Lattner
535febc452
Test commit.
...
llvm-svn: 96711
2010-02-21 03:01:05 +00:00
Tanya Lattner
0cd59517c6
Test commit
...
llvm-svn: 96710
2010-02-21 02:59:05 +00:00
Fariborz Jahanian
34e3cef483
Start supporting declaration of ivars in @implementation
...
blocks. WIP.
llvm-svn: 96696
2010-02-19 20:58:54 +00:00
Anders Carlsson
350b56eed5
Add the CK_UnusedFunctionPointer component kind for unused function pointers.
...
llvm-svn: 96695
2010-02-19 20:08:13 +00:00