Nate Begeman
12d1f62f6c
clang codegen support
...
llvm-svn: 105531
2010-06-07 16:00:37 +00:00
Jeffrey Yasskin
caa710dfd2
PR7245: Make binding a reference to a temporary without a usable copy
...
constructor into an extension warning into the error that C++98 requires.
llvm-svn: 105529
2010-06-07 15:58:05 +00:00
Kenneth Uildriks
1850444000
Partial specialization was not checking the callsite to make sure it was using the same constants as the specialization, leading to calls to the wrong specialization. Patch by Takumi Nakamura\!
...
llvm-svn: 105528
2010-06-05 14:50:21 +00:00
Duncan Sands
e4f45cc88f
This bug is also present in MSVC10. Requested by Elrood on IRC.
...
llvm-svn: 105527
2010-06-05 12:40:43 +00:00
John McCall
cb0f89a434
Simplify the methods for creating a pointer, reference, member-pointer,
...
or block-pointer type by removing the qualifiers parameter. Introduce a
method to perform semantic checking when adding qualifiers to a type.
llvm-svn: 105526
2010-06-05 06:41:15 +00:00
Abramo Bagnara
d73405829b
Added AccessSpecDecl node.
...
llvm-svn: 105525
2010-06-05 05:09:32 +00:00
Chris Lattner
fdd2614330
revert r105521, which is breaking the buildbots with stuff like this:
...
In file included from X86InstrInfo.cpp:16:
X86GenInstrInfo.inc:2789: error: integer constant is too large for 'long' type
X86GenInstrInfo.inc:2790: error: integer constant is too large for 'long' type
X86GenInstrInfo.inc:2792: error: integer constant is too large for 'long' type
X86GenInstrInfo.inc:2793: error: integer constant is too large for 'long' type
X86GenInstrInfo.inc:2808: error: integer constant is too large for 'long' type
X86GenInstrInfo.inc:2809: error: integer constant is too large for 'long' type
X86GenInstrInfo.inc:2816: error: integer constant is too large for 'long' type
X86GenInstrInfo.inc:2817: error: integer constant is too large for 'long' type
llvm-svn: 105524
2010-06-05 04:17:30 +00:00
Bruno Cardoso Lopes
594fa26317
Initial AVX support for some instructions. No patterns matched
...
yet, only assembly encoding support.
llvm-svn: 105521
2010-06-05 03:53:24 +00:00
Bruno Cardoso Lopes
c4f614870f
Teach tablegen to support 'defm' inside multiclasses.
...
llvm-svn: 105519
2010-06-05 02:11:52 +00:00
Jeffrey Yasskin
2f96e9f5c9
Add an extension to avoid an error when a global template has the same name as
...
a member template, and you try to call the member template with an explicit
template argument. See PR7247
For example, this downgrades the error to a warning in:
template<typename T> struct set{};
struct Value {
template<typename T>
void set(T value) {
}
};
void foo() {
Value v;
v.set<double>(3.2); // Warning here.
}
llvm-svn: 105518
2010-06-05 01:39:57 +00:00
Dan Gohman
0501b03242
Make MachineFunctionPass::createPrinterPass private, as no subclasses
...
should be calling it.
llvm-svn: 105517
2010-06-05 01:19:12 +00:00
Devang Patel
6ccba0fb6e
Preserve type info for local variables in optimized builds.
...
llvm-gcc enabled this couple of weeks ago.
llvm-svn: 105516
2010-06-05 01:14:40 +00:00
Dale Johannesen
81ef35b3ca
Improvements to tail call code. No functional effect
...
unless using -arm-tail-calls.
llvm-svn: 105515
2010-06-05 00:51:39 +00:00
Dan Gohman
520913cf9e
getFoldedOffsetOf no longer does anything special with vector types.
...
llvm-svn: 105514
2010-06-05 00:47:34 +00:00
Dan Gohman
8c292adba4
No need to special-case structs here; structs are first-class now.
...
llvm-svn: 105513
2010-06-05 00:42:29 +00:00
Stuart Hastings
3ca391027f
Revert 105492 & 105493 due to a testcase regression. Radar 7424645.
...
llvm-svn: 105511
2010-06-05 00:39:29 +00:00
Dan Gohman
bbfb6aca92
LSR needs to remember inserted instructions even in postinc mode, because
...
there could be multiple subexpressions within a single expansion which
require insert point adjustment. This fixes PR7306.
llvm-svn: 105510
2010-06-05 00:33:07 +00:00
Dale Johannesen
df1a7f83bf
Fix some liveout handling related to tail calls, see comments.
...
I don't think this ever resulted in problems on x86, but it
would on ARM.
llvm-svn: 105509
2010-06-05 00:30:45 +00:00
Dan Gohman
d7910a805d
Implement operator== and operator!= for SetVector.
...
llvm-svn: 105508
2010-06-05 00:26:02 +00:00
Devang Patel
3eed2cf587
test case for r105504.
...
Radar 8055687.
llvm-svn: 105505
2010-06-04 23:47:41 +00:00
John McCall
8cb7bdfd33
Alter the interface of GetTypeForDeclarator to return a TypeSourceInfo*.
...
This is never null, but the associated type might be.
llvm-svn: 105503
2010-06-04 23:28:52 +00:00
Evan Cheng
a03e6f85fe
Re-apply 105308 with fix.
...
llvm-svn: 105502
2010-06-04 23:28:13 +00:00
Dan Gohman
67b4403101
Don't track users of undef values; they aren't interesting for
...
register pressure.
llvm-svn: 105501
2010-06-04 23:16:05 +00:00
Rafael Espindola
e971b9a260
Correctly align large arrays in x86-64. This fixes PR5599.
...
llvm-svn: 105500
2010-06-04 23:15:27 +00:00
Jim Grosbach
a1e08fb256
Make if-conversion ignore dbg_value instructions in its analysis. rdar://7797940
...
llvm-svn: 105498
2010-06-04 23:01:26 +00:00
Nate Begeman
7090e5be2b
Handle multi-vector returns and args.
...
llvm-svn: 105496
2010-06-04 22:53:30 +00:00
Devang Patel
e89b759501
Update docs to reflect new DISubprogram elements.
...
llvm-svn: 105495
2010-06-04 22:49:55 +00:00
Anders Carlsson
76f513f862
When deciding whether reinterpret_cast casts away constness we need to look at array qualifiers. Fixes rdar://problem/8018292.
...
llvm-svn: 105494
2010-06-04 22:47:55 +00:00
Stuart Hastings
7c015988fe
Support for nested functions/classes in debug output. Radar 7424645.
...
llvm-svn: 105492
2010-06-04 22:36:03 +00:00
John McCall
a3cecb628f
Add indexing support for the block and @property type location information
...
I just implemented.
llvm-svn: 105491
2010-06-04 22:33:30 +00:00
Devang Patel
36da24b546
Copy location info for current function argument from dbg.declare if respective store instruction does not have any location info.
...
llvm-svn: 105490
2010-06-04 22:27:30 +00:00
Nate Begeman
6736cc89d0
Initial support for ARM NEON builtins, codegen up next
...
llvm-svn: 105489
2010-06-04 21:36:27 +00:00
Nate Begeman
0d081df3f2
Additional fixes to BuiltinsARM.def generator, on to clang codegen.
...
llvm-svn: 105488
2010-06-04 21:36:00 +00:00
Fariborz Jahanian
ea882cd92e
Build AST for copy-construction of copied-in
...
class object in blocks and carry it to IRGen.
llvm-svn: 105487
2010-06-04 21:35:44 +00:00
Dale Johannesen
065d6fd537
More tail call removal.
...
llvm-svn: 105485
2010-06-04 21:14:24 +00:00
John McCall
339bb66246
Remember type source information for Objective C property declarations.
...
llvm-svn: 105484
2010-06-04 20:50:08 +00:00
Jim Grosbach
50d229e6b3
Skip dbg_value instructions when scanning instructions in register scavenging.
...
llvm-svn: 105481
2010-06-04 20:18:30 +00:00
Dan Gohman
538b413ccb
Fix normalization and de-normalization of non-affine SCEVs.
...
llvm-svn: 105480
2010-06-04 19:16:34 +00:00
Fariborz Jahanian
9643399ef0
Added a field to BlockDeclRefExpr for future use.
...
No functionality change yet.
llvm-svn: 105479
2010-06-04 19:06:53 +00:00
John McCall
8e346702b6
Preserve more information from a block's original function declarator, if one
...
was given. Remove some unnecessary accounting from BlockScopeInfo. Handle
typedef'ed function types until such time as we decide not.
llvm-svn: 105478
2010-06-04 19:02:56 +00:00
Daniel Dunbar
7f3d95054b
Driver: Change -dwarf-debug-flags option to pass the original command line
...
arguments after translation, instead of the -cc1 level arguments.
llvm-svn: 105476
2010-06-04 18:47:06 +00:00
Daniel Dunbar
6beaf5110f
Driver/Darwin: Model dsymutil properly, as a separate action/tool kind which is
...
added as the last output step, instead of just hacking it into the link step.
- Among other things, this fixes dSYM generation when using multiple -arch options.
llvm-svn: 105475
2010-06-04 18:28:41 +00:00
Daniel Dunbar
8829962030
Driver: Add an explicit dsymutil action.
...
llvm-svn: 105474
2010-06-04 18:28:36 +00:00
Jakob Stoklund Olesen
864827afb0
Keep track of the call instructions whose clobber lists were skipped during fast
...
register allocation.
Process all of the clobber lists at the end of the function, marking the
registers as used in MachineRegisterInfo.
This is necessary in case the calls clobber callee-saved registers (sic).
llvm-svn: 105473
2010-06-04 18:08:29 +00:00
Dale Johannesen
d1b9311afa
More thoroughly disable tails calls by default.
...
8060143, although this doesn't fix the real problem with tail call.
llvm-svn: 105472
2010-06-04 18:04:24 +00:00
Jim Grosbach
3548803f62
Another fix to prevent debug info from affecting codegen. rdar://7797940
...
llvm-svn: 105470
2010-06-04 17:57:34 +00:00
Fariborz Jahanian
64176c2c97
For C++ copied in objects, use copy constructors in
...
setting up block's descriptor. This is on going work to
support c++ specific issues in setting up blocks
various APIs.
llvm-svn: 105469
2010-06-04 16:10:00 +00:00
Rafael Espindola
92eb2cbbef
Add ARM paths for debian. Not enough to bootstrap on a beagle board, but
...
moves us further.
llvm-svn: 105468
2010-06-04 14:28:10 +00:00
Dan Gohman
f4e31c8974
Fix an apparent typo.
...
llvm-svn: 105467
2010-06-04 14:16:02 +00:00
John McCall
a3ccba0417
Restructure how we interpret block-literal declarators. Correctly handle
...
the case where we pick up block arguments from a typedef. Save the block
signature as it was written, and preserve same through PCH.
llvm-svn: 105466
2010-06-04 11:21:44 +00:00