Anders Carlsson
fb1d776ff0
Keep track of whether a type parameter is actually a type parameter pack.
...
llvm-svn: 73261
2009-06-12 22:23:22 +00:00
Douglas Gregor
30b0197169
Finish implementing checking of class template partial specializations
...
llvm-svn: 73260
2009-06-12 22:21:45 +00:00
Douglas Gregor
09a3023e65
Diagnose C++ [temp.class.spec]p9b3, where a class template partial
...
specialization's arguments are identical to the implicit template
arguments of the primary template. Typically, this is meant to be a
declaration/definition of the primary template, so we give that
advice.
llvm-svn: 73259
2009-06-12 22:08:06 +00:00
Owen Anderson
c59a7cb8cc
Improve style.
...
llvm-svn: 73258
2009-06-12 22:07:19 +00:00
Owen Anderson
eaac7a42fe
This is supposed to be a preorder numbering of the dominator tree, not the CFG.
...
llvm-svn: 73257
2009-06-12 21:50:22 +00:00
Owen Anderson
d0428da398
Now with less iterator invalidation, and other forms of crashing!
...
llvm-svn: 73256
2009-06-12 21:41:29 +00:00
Evan Cheng
b6cf8dbb96
If killed register is defined by implicit_def, do not clear it since it's live range may overlap another def of same register.
...
llvm-svn: 73255
2009-06-12 21:34:26 +00:00
Douglas Gregor
8cfd2ba76d
Diagnose the incorrect use of non-type template arguments for class
...
template partial specializations.
llvm-svn: 73254
2009-06-12 21:21:02 +00:00
Chris Lattner
3dd5c5d28a
second half of fix for PR4366: don't zap store to null of
...
non-default addrspaces.
llvm-svn: 73253
2009-06-12 21:01:07 +00:00
Evan Cheng
d93b5b672f
Mark some pattern-less instructions as neverHasSideEffects.
...
llvm-svn: 73252
2009-06-12 20:46:18 +00:00
Eli Friedman
7983cb1dbe
Minor formatting tweak.
...
llvm-svn: 73251
2009-06-12 20:11:05 +00:00
Eli Friedman
0f7d4455fe
Fix a minor formatting mistake.
...
llvm-svn: 73250
2009-06-12 20:08:48 +00:00
Eli Friedman
4e20479de8
Some updates to the gcc extension sections of the users manual.
...
llvm-svn: 73249
2009-06-12 20:04:25 +00:00
Anders Carlsson
01e9e93485
Parse support for C++0x type parameter packs.
...
llvm-svn: 73247
2009-06-12 19:58:00 +00:00
Devang Patel
310fd4ad03
Document noredzone and noimplicitfloat function attributes.
...
llvm-svn: 73246
2009-06-12 19:45:19 +00:00
Douglas Gregor
d52220513f
Verify that the template parameters of a class template partial
...
specialization do not have default arguments
(C++ [temp.class.spec]p10).
llvm-svn: 73245
2009-06-12 19:43:02 +00:00
Devang Patel
c1fee72162
Clear AbstractInstanceRootMap at the end of the function.
...
llvm-svn: 73244
2009-06-12 19:24:05 +00:00
Dan Gohman
9377b086f5
Don't do (x - (y - z)) --> (x + (z - y)) on floating-point types, because
...
it may round differently. This fixes PR4374.
llvm-svn: 73243
2009-06-12 19:23:25 +00:00
Douglas Gregor
dc41eb18e9
Update the C++ status to reflect improvements in template argument deduction and the handling of class template partial specializations
...
llvm-svn: 73242
2009-06-12 19:15:38 +00:00
Dan Gohman
17fb0d24eb
Give Instruction::isSameOperationAs a corresponding comment to note
...
the relationship with MergeFunctions.cpp's isEquivalentOperation,
and make a trivial code reordering so that the two functions are
easier to compare.
Fix the name of Instruction::isSameOperationAs in MergeFunction.cpp's
isEquivalentOperation's comment, and fix a nearby 80-column violation.
llvm-svn: 73241
2009-06-12 19:03:05 +00:00
Anders Carlsson
b0e8e228ff
Fix PR4365.
...
llvm-svn: 73240
2009-06-12 18:53:02 +00:00
Dale Johannesen
9ebb4d2127
Testcase for llvm-gcc patch 73238.
...
llvm-svn: 73239
2009-06-12 18:41:53 +00:00
Douglas Gregor
181aa4a250
Improve template argument deduction to keep track of why template
...
argument deduction failed. For example, given
template<typename T> struct is_same<T, T> { ... };
template argument deduction will fail for is_same<int, float>, and now
reports enough information
Right now, we don't do anything with this extra information, but it
can be used for informative diagnostics that say, e.g., "template
argument deduction failed because T was deduced to 'int' in one
context and 'float' in another".
llvm-svn: 73237
2009-06-12 18:26:56 +00:00
Bill Wendling
2ec94e44c7
Waste time fixing something that should have been fixed before.
...
llvm-svn: 73236
2009-06-12 18:02:40 +00:00
Nick Lewycky
ec06695579
Keep callers of a weak function calling it, instead of the non-weak equivalent.
...
llvm-svn: 73235
2009-06-12 17:16:48 +00:00
Anders Carlsson
84613c4eba
It's an error to use a function declared in a class definition as a default argument before the function has been declared.
...
llvm-svn: 73234
2009-06-12 16:51:40 +00:00
Arnold Schwaighofer
e3a018d707
Fix Bug 4278: X86-64 with -tailcallopt calling convention
...
out of sync with regular cc.
The only difference between the tail call cc and the normal
cc was that one parameter register - R9 - was reserved for
calling functions through a function pointer. After time the
tail call cc has gotten out of sync with the regular cc.
We can use R11 which is also caller saved but not used as
parameter register for potential function pointers and
remove the special tail call cc on x86-64.
llvm-svn: 73233
2009-06-12 16:26:57 +00:00
Anders Carlsson
a767eeed19
Deducation and instantiation of block types.
...
llvm-svn: 73232
2009-06-12 16:23:10 +00:00
Nick Lewycky
d5bf51faa2
Don't forget to match the calling convention when producing a thunk.
...
llvm-svn: 73231
2009-06-12 16:04:00 +00:00
Nick Lewycky
25675ac14a
Given two identical weak functions, produce one internal function and two weak
...
thunks.
llvm-svn: 73230
2009-06-12 15:56:56 +00:00
Duncan Sands
768042812c
Tweak GenLibDeps.pl so it works on solaris.
...
Patch by Edward O'Callaghan.
llvm-svn: 73228
2009-06-12 14:23:42 +00:00
Nicolas Geoffray
b1a9091298
After obtaining the lock, look if the function has been codegen'd by
...
another thread.
llvm-svn: 73227
2009-06-12 14:11:08 +00:00
Nick Lewycky
42ded7042c
This test is wrong. If you have two weak functions F and G you can't make
...
either one call the other since either one can be replaced at link time, and
they need to be independent.
llvm-svn: 73225
2009-06-12 13:24:41 +00:00
Duncan Sands
945203bbbe
Add clang support to the nightly test script.
...
Patch by Edward O'Callaghan.
llvm-svn: 73224
2009-06-12 13:02:52 +00:00
Duncan Sands
c523393900
Credits for Edward O'Callaghan.
...
llvm-svn: 73223
2009-06-12 12:52:24 +00:00
Nick Lewycky
e04dc22ebd
Add an "are types equivalent" operation that ignores the types that a pointer
...
points to while analyzing all other fields.
Use FoldingSetNodeID to produce a good hash. This dramatically decreases run
times.
Emit thunks. This means that it can look at all functions regardless of what
the linkage is or if the address is taken, but unfortunately some small
functions can be even shorter than the thunk because our backend doesn't yet
realize it can just turn these into jumps. This means that this pass will
pessimize code on average.
llvm-svn: 73222
2009-06-12 08:04:51 +00:00
Nick Lewycky
cf4e1dff31
Fix regular expression.
...
llvm-svn: 73221
2009-06-12 05:39:02 +00:00
Nick Lewycky
a879819918
Don't remove aggregate-typed module level constants before encoding functions
...
since functions may contain aggregate constants too.
llvm-svn: 73220
2009-06-12 05:20:12 +00:00
Nick Lewycky
e68347bde5
In an XFAIL line, treat "XFAIL: foo*bar" as a regular expression to be matched
...
against the target triple, instead of equivalent to "XFAIL: *".
llvm-svn: 73219
2009-06-12 05:18:32 +00:00
Zhongxing Xu
2693c504c2
use getAsPointerType() method.
...
llvm-svn: 73218
2009-06-12 03:59:12 +00:00
Oscar Fuentes
6c0c09dcbb
CMake: New variable LLVM_LIBDIR_SUFFIX.
...
Patch by Ingmar Vanhassel!
llvm-svn: 73217
2009-06-12 02:54:12 +00:00
Oscar Fuentes
46fed3b475
CMake: New variable LLVM_LIBDIR_SUFFIX.
...
Patch by Ingmar Vanhassel!
llvm-svn: 73216
2009-06-12 02:49:53 +00:00
Misha Brukman
15b8bc18a3
Update script to tell the user where to get the CodeSourcery crosstool, if it's
...
not found.
llvm-svn: 73213
2009-06-12 02:04:47 +00:00
Misha Brukman
7a017c6f96
Added two scripts to aid with building Linux/x86 -> Linux/ARM crosstools, using
...
CodeSourcery's provided GCC-based crosstools, from which we use binutils.
llvm-svn: 73212
2009-06-12 01:55:57 +00:00
Nick Lewycky
225ab16b07
XFAIL this on PPC Linux. This keeps showing up in the buildbot and isn't easy to fix, and I'd like it to stop masking
...
real failures.
llvm-svn: 73211
2009-06-11 23:43:02 +00:00
Eli Friedman
32ad5e9c08
Misc x86 README updates: remove a couple of already-fixed issues,
...
add a few suggestions from looking at some assembly code.
llvm-svn: 73210
2009-06-11 23:07:04 +00:00
Bruno Cardoso Lopes
66189503ef
Use forward declarations and move TargetELFWriterInfo impl to a new file.
...
llvm-svn: 73209
2009-06-11 22:13:00 +00:00
Anders Carlsson
8783543a6f
Don't assert when generating code with static_asserts.
...
llvm-svn: 73208
2009-06-11 21:22:55 +00:00
Dale Johannesen
4bd5463617
Test for rev 73205 (PR 4349)
...
llvm-svn: 73206
2009-06-11 20:48:09 +00:00
Eli Friedman
7433a248e3
PR4371: Reduce the inlining threshold outside of -O3. This makes
...
the clang inlining threshold consistent with the threshold for llvm-gcc.
llvm-svn: 73204
2009-06-11 20:33:41 +00:00