Dan Gohman
69cd963b9a
When emitting instructions that define EFLAGS and the EFLAGS value isn't
...
used, mark the defs as dead.
llvm-svn: 61215
2008-12-18 22:03:42 +00:00
Dan Gohman
975f78ae79
When setting up the frame pointer, add it as a live-in register to all
...
non-entry blocks, so that it doesn't appear use-before-def anywhere.
llvm-svn: 61214
2008-12-18 22:01:52 +00:00
Dan Gohman
0ab1144c79
Print subreg information in MachineInstr::dump.
...
llvm-svn: 61213
2008-12-18 21:51:27 +00:00
Douglas Gregor
b04675d112
Don't check initializers when there are dependent types or type-dependent expressions involved
...
llvm-svn: 61212
2008-12-18 21:49:58 +00:00
Mon P Wang
998fd29ce1
Fixed x86 code generation of multiple for v2i64. It was incorrect for SSE4.1.
...
llvm-svn: 61211
2008-12-18 21:42:19 +00:00
Mon P Wang
6e5f4bc1e7
Added some basic test cases for r61209
...
llvm-svn: 61210
2008-12-18 20:05:58 +00:00
Mon P Wang
a501640ffa
Added support for vector widening.
...
llvm-svn: 61209
2008-12-18 20:03:17 +00:00
Douglas Gregor
55ad91fecb
Ultrasimplistic sketch for the parsing of C++ template-ids. This won't
...
become useful or correct until we (1) parse template arguments
correctly, (2) have some way to turn template-ids into types,
declarators, etc., and (3) have a real representation of templates.
llvm-svn: 61208
2008-12-18 19:37:40 +00:00
Ted Kremenek
9443f0ea5e
Use '&' to test StartOfLine flag.
...
llvm-svn: 61205
2008-12-18 18:15:29 +00:00
Fariborz Jahanian
f8f0c6b1bc
Removed a slot in ObjCMemRegExpr used in
...
code gen which did not belong there.
llvm-svn: 61203
2008-12-18 17:29:46 +00:00
Steve Naroff
d96f7cca5f
Fix http://llvm.org/bugs/show_bug.cgi?id=3189 .
...
llvm-svn: 61202
2008-12-18 15:50:41 +00:00
Evan Cheng
8e0f6f272f
Remove dead comments.
...
llvm-svn: 61201
2008-12-18 09:01:18 +00:00
Chris Lattner
84a1162e4c
add a simple fast-path for the common case of [] and [4] in
...
array size declarators. No need to go through all the trouble
of parsing crazy things like [static const 4] when most code
doesn't need it.
llvm-svn: 61200
2008-12-18 07:27:21 +00:00
Chris Lattner
97f2bbdbcc
rename argument
...
llvm-svn: 61199
2008-12-18 07:07:10 +00:00
Chris Lattner
cf0bab2042
disallow attributes in a few callers of ParseTypeQualifierListOpt,
...
these completely ignore parsed attributes anyway, so don't try
to read them.
llvm-svn: 61198
2008-12-18 07:02:59 +00:00
Chris Lattner
b6ec4e75ad
Clean up the C89/C++ warnings about C99 array features to not
...
emit duplicate diags (some in parser and some in sema) and to
warn about use of typequals in array sizes. This implements
PR2759.
llvm-svn: 61197
2008-12-18 06:50:14 +00:00
Nick Lewycky
c3a70ade66
Oops! Left out a line.
...
Simplifying the sdiv might allow further simplifications for our users.
llvm-svn: 61196
2008-12-18 06:42:28 +00:00
Nick Lewycky
0f0e63fe73
Make all the vector elements positive in an srem of constant vector.
...
llvm-svn: 61195
2008-12-18 06:31:11 +00:00
Chris Lattner
4caf5eb70c
Fix PR2929 by making bugpoint/code extract propagate the nothrow
...
bit from the original function to the cloned one.
llvm-svn: 61194
2008-12-18 05:52:56 +00:00
Zhongxing Xu
6437a9eaf6
Add method used by ImmutableMap GDM specialization.
...
llvm-svn: 61193
2008-12-18 05:15:58 +00:00
Daniel Dunbar
9ae0afdcd6
Allow ABI to use StructRet even for scalar values.
...
- Update comment to reflect fact that StructRet is now supported for
any type (modulo LLVM support).
- No functionality change, no scalar types currently use this
feature.
llvm-svn: 61192
2008-12-18 04:52:14 +00:00
Mikhail Glushenkov
cf029824e1
Fix typo in error message.
...
llvm-svn: 61191
2008-12-18 04:06:58 +00:00
Nick Lewycky
9c7379d077
Recommit this grammar fix that was backed out along with nocapture.
...
llvm-svn: 61189
2008-12-18 02:15:05 +00:00
Chris Lattner
0cb00d66ea
This is valid in C++.
...
void foo() { return foo(); }
llvm-svn: 61188
2008-12-18 02:03:48 +00:00
Chris Lattner
27e5beff70
Merge function-return.c into function.c
...
Fix PR2790 by making a warning an EXTWARN instead of EXTENSION.
Add a new EXTENSION warning for "return (some void expression);"
llvm-svn: 61187
2008-12-18 02:01:17 +00:00
Dan Gohman
83682a9441
Give MachineLICM a name, for -time-passes etc.
...
llvm-svn: 61184
2008-12-18 01:37:56 +00:00
Dan Gohman
b0ef9140e5
Move post-RA scheduling before branch folding for now, because branch
...
folding's tail merging doesn't currently preserve liveness information
which post-RA scheduling requires.
llvm-svn: 61183
2008-12-18 01:36:42 +00:00
Owen Anderson
ad4d2ab15b
Re-apply r61158 in a form that no longer breaks tests.
...
llvm-svn: 61182
2008-12-18 01:27:19 +00:00
Dale Johannesen
3e5843b992
Revert previous patch, appears to break bootstrap.
...
llvm-svn: 61181
2008-12-18 01:23:41 +00:00
Chris Lattner
d19c1c0d6d
implement PR3177 - "__extension__ union" not supported in C++ mode
...
llvm-svn: 61180
2008-12-18 01:12:00 +00:00
Dan Gohman
49c44fa014
Mark the x86 fp stack registers as "reserved". This tells LiveVariables
...
and the RegisterScavenger not to expect traditional liveness
techniques are applicable to these registers, since we don't fully
modify the effects of push and pop after stackification.
llvm-svn: 61179
2008-12-18 01:05:09 +00:00
Dale Johannesen
12d031b716
Fix the time regression I introduced in 464.h264ref with
...
my last patch to this file.
The issue there was that all uses of an IV inside a loop
are actually references to Base[IV*2], and there was one
use outside that was the same but LSR didn't see the base
or the scaling because it didn't recurse into uses outside
the loop; thus, it used base+IV*scale mode inside the loop
instead of pulling base out of the loop. This was extra bad
because register pressure later forced both base and IV into
memory. Doing that recursion, at least enough
to figure out addressing modes, is a good idea in general;
the change in AddUsersIfInteresting does this. However,
there were side effects....
It is also possible for recursing outside the loop to
introduce another IV where there was only 1 before (if
the refs inside are not scaled and the ref outside is).
I don't think this is a common case, but it's in the testsuite.
It is right to be very aggressive about getting rid of
such introduced IVs (CheckForIVReuse and the handling of
nonzero RewriteFactor in StrengthReduceStridedIVUsers).
In the testcase in question the new IV produced this way
has both a nonconstant stride and a nonzero base, neither
of which was handled before. (This patch does not handle
all the cases where this can happen.) And when inserting
new code that feeds into a PHI, it's right to put such
code at the original location rather than in the PHI's
immediate predecessor(s) when the original location is outside
the loop (a case that couldn't happen before)
(RewriteInstructionToUseNewBase); better to avoid making
multiple copies of it in this case.
Everything above is exercised in
CodeGen/X86/lsr-negative-stride.ll (and ifcvt4 in ARM which is
the same IR).
llvm-svn: 61178
2008-12-18 00:57:22 +00:00
Chris Lattner
b6372933b5
reapply this hunk from Bill's reversion in r61169, it is conservative
...
and safe and orthogonal from turning off load pre.
llvm-svn: 61177
2008-12-18 00:51:32 +00:00
Bill Wendling
7ecf774262
XFAIL on Linux.
...
llvm-svn: 61176
2008-12-18 00:35:21 +00:00
Chris Lattner
c1c6404bba
make instnamer name unnamed blocks as well as instructions and args.
...
llvm-svn: 61175
2008-12-18 00:33:11 +00:00
Bill Wendling
ede2f8098d
Do not XFAIL.
...
llvm-svn: 61174
2008-12-18 00:27:15 +00:00
Ted Kremenek
a1fd586dca
Updated checker build.
...
llvm-svn: 61173
2008-12-17 23:55:41 +00:00
Ted Kremenek
aceeb25660
Rewrite PTHLexer::DiscardToEndOfLine() to not use GetToken and instead only read the bytes needed to determine if a token is not at the start of the line.
...
llvm-svn: 61172
2008-12-17 23:52:11 +00:00
Nuno Lopes
394ec984f2
fix leakage of var's initializers
...
llvm-svn: 61171
2008-12-17 23:39:55 +00:00
Ted Kremenek
63ff81c4e1
Change PTHLexer::getSourceLocation() to not call GetToken() and instead just read the file offset in the token data buffer directly.
...
llvm-svn: 61170
2008-12-17 23:36:32 +00:00
Bill Wendling
be4fb8a25f
Temporarily revert r61027. It was causing a bootstrap failure in "release" mode
...
with everyone's favorite error messages:
Comparing stages 2 and 3
warning: ./cc1-checksum.o differs
warning: ./cc1plus-checksum.o differs
Bootstrap comparison failure!
./c-decl.o differs
./cp/decl.o differs
./df-core.o differs
./gcc.o differs
./i386.o differs
./stor-layout.o differs
./tree-pretty-print.o differs
./tree.o differs
make[2]: *** [compare] Error 1
make[1]: *** [stage3-bubble] Error 2
See PR3227.
llvm-svn: 61169
2008-12-17 23:31:20 +00:00
Ted Kremenek
8c4bb56219
PTHLexer::isNextPPTokenLParen() no longer calls GetToken() and just reads the token kind from the token data buffer. This results in a minor speedup and reduces the dependency on GetToken().
...
llvm-svn: 61168
2008-12-17 23:08:31 +00:00
Devang Patel
980210395f
XFAIL for now.
...
llvm-svn: 61167
2008-12-17 22:54:54 +00:00
Devang Patel
fd9aa62cc6
Xfail these tests for now.
...
llvm-svn: 61166
2008-12-17 22:53:09 +00:00
Douglas Gregor
19b8c4fffa
Delay semantic analysis of the C++ names casts when the subexpression is type-dependent or the destination type is dependent.
...
llvm-svn: 61165
2008-12-17 22:52:20 +00:00
Devang Patel
90ba91574a
Today the front-ends (llvm-gcc and clang) generate multiple llvm.dbg.compile_units to identify source file for various debug entities. Each llvm.dbg.compile_unit matches one file on the disk. However, the backend only supports one DW_TAG_compile_unit per .o file. The backend selects first compile_unit from the vector to construct DW_TAG_compile_unit entry, which is not correct in all cases.
...
First step to resolve this is, record file name and directory directly in debug info for various debug entities.
llvm-svn: 61164
2008-12-17 22:39:29 +00:00
Nuno Lopes
e013c7f6c1
fix a few more memory leaks: clean the ASTRecordLayouts, ASTObjCInterfaces and ASTRecordForInterface maps
...
llvm-svn: 61163
2008-12-17 22:30:25 +00:00
Eli Friedman
46f8c1290a
Oops, accidentally commited the wrong version of the test (original
...
commit r61160).
llvm-svn: 61162
2008-12-17 22:22:03 +00:00
Fariborz Jahanian
4496c0ff86
Patch to re-implement duplicate ivar checking
...
(which will pass duplicate-ivar-check.m test again).
llvm-svn: 61161
2008-12-17 22:21:44 +00:00
Eli Friedman
44842d140f
Do proper recovery from an invalid switch condiition. Fixes PR3229.
...
llvm-svn: 61160
2008-12-17 22:19:57 +00:00