Eric Christopher
27e7ffc7d4
Partial code for emitting thread local bss data.
...
llvm-svn: 104197
2010-05-20 00:49:07 +00:00
Bill Wendling
de852faef9
Match "4" or "8" depending upon if it's 32- or 64-bit.
...
llvm-svn: 104196
2010-05-20 00:27:10 +00:00
Chris Lattner
8ca2fd2e93
just add a fixme for the StructuredArgs leak, it shouldn't affect
...
c++'03 code and variadic support "needs work".
llvm-svn: 104195
2010-05-20 00:26:28 +00:00
Chris Lattner
047f5aa007
switch TemplateArgumentListBuilder to hold its flat argument list in a smallvector
...
instead of new[]'d. This greatly reduces the number of new[]'s, and guess what,
they were all leaked.
This adds a fixme in this hunk:
unsigned NumPackArgs = NumFlatArgs - PackBeginIndex;
+ // FIXME: NumPackArgs shouldn't be negative here???
if (NumPackArgs)
- PackArgs = &FlatArgs[PackBeginIndex];
+ PackArgs = FlatArgs.data()+PackBeginIndex;
where test/SemaTemplate/variadic-class-template-2.cpp is accessing the vector
out of range and NumPackArgs is negative. I assume variadic template args are
completely hosed.
llvm-svn: 104194
2010-05-20 00:25:36 +00:00
Chris Lattner
ce7a22d97c
fix the TemplateArgumentList copy constructor to not
...
be a copy constructor (since it isn't one semantically)
and fix the ownership bits it sets to be correct!
llvm-svn: 104192
2010-05-20 00:19:09 +00:00
Chris Lattner
c9b03bcc5d
Clarify TemplateArgumentList ownership over its "flat" and
...
"structure" arg lists, the first step to fixing some massive
memory leaks.
llvm-svn: 104191
2010-05-20 00:11:47 +00:00
Eric Christopher
4b4446be7c
Once more, with feeling.
...
llvm-svn: 104190
2010-05-20 00:07:13 +00:00
Daniel Dunbar
04c4a399aa
lit: Add another place to look for bash.
...
llvm-svn: 104189
2010-05-19 23:56:09 +00:00
Jim Grosbach
db061516be
tweak to (hopefully) fix darwin[89] buildbots. Thanks to Doug for the suggested modification.
...
llvm-svn: 104188
2010-05-19 23:53:08 +00:00
Dan Gohman
20fab456da
Teach LSR how to cope better with unrolled loops on targets where
...
the addressing modes don't make this trivially easy. This allows
it to avoid falling into the less precise heuristics in more
cases.
llvm-svn: 104186
2010-05-19 23:43:12 +00:00
Bob Wilson
42603958fb
Optimize away insertelement of an undef value. This shows up in
...
test/Codegen/ARM/reg_sequence.ll but it doesn't affect the generated code
because the coalescer cleans it up. Radar 7998853.
llvm-svn: 104185
2010-05-19 23:42:58 +00:00
Douglas Gregor
fa6010b6e4
When a conditional operator is an rvalue of class type, we need to
...
create a temporary copy of both the "true" and "false" results. Fixes
the Boost.Interprocess failures.
Daniel did all the hard work of tracking down the issue, I get to type
up the trivial fix for this horrible miscompile.
llvm-svn: 104184
2010-05-19 23:40:50 +00:00
Chris Lattner
7cbfa4462f
fix rdar://7986634 - match instruction opcodes case insensitively.
...
llvm-svn: 104183
2010-05-19 23:34:33 +00:00
Bill Wendling
1c4687e350
Testcase for r104181.
...
llvm-svn: 104182
2010-05-19 23:33:26 +00:00
Fariborz Jahanian
e150539100
More tests for ObjC++ GC support.
...
llvm-svn: 104176
2010-05-19 23:07:54 +00:00
Jim Grosbach
f98511473e
Enable preserving debug information through post-RA scheduling
...
llvm-svn: 104175
2010-05-19 22:57:47 +00:00
Jim Grosbach
604560c5fe
Fix the post-RA instruction scheduler to handle instructions referenced by
...
more than one dbg_value instruction. rdar://7759363
llvm-svn: 104174
2010-05-19 22:57:06 +00:00
Evan Cheng
70e506e18a
Code clean up.
...
llvm-svn: 104173
2010-05-19 22:42:23 +00:00
Devang Patel
a08130864e
Revert r104165.
...
llvm-svn: 104172
2010-05-19 21:58:28 +00:00
Ted Kremenek
08de5c1418
Move CXCursor_FirstDecl definition later to make the results more readable in the debugger.
...
llvm-svn: 104171
2010-05-19 21:51:10 +00:00
Abramo Bagnara
d754848f10
Added basic source locations to Elaborated and DependentName types.
...
llvm-svn: 104169
2010-05-19 21:37:53 +00:00
Fariborz Jahanian
f633ebd961
Adds support for ObjC++'s GC attribute on declaration of
...
object variables and functions returning such objects.
llvm-svn: 104168
2010-05-19 21:37:30 +00:00
Jakob Stoklund Olesen
e0eddb21f5
Add support for partial redefs to the fast register allocator.
...
A partial redef now triggers a reload if required. Also don't add
<imp-def,dead> operands for physical superregisters.
Kill flags are still treated as full register kills, and <imp-use,kill> operands
are added for physical superregisters as before.
llvm-svn: 104167
2010-05-19 21:36:05 +00:00
Devang Patel
0fe341e2e2
There is no need to maintain InsnsBeginScopeSet separately.
...
llvm-svn: 104165
2010-05-19 21:26:53 +00:00
Eric Christopher
63476ddae6
A more combo tls testcase.
...
llvm-svn: 104163
2010-05-19 21:19:42 +00:00
Daniel Dunbar
fd5ed84873
Revert r104117, "Provide a naming class for UnresolvedLookupExprs, even when
...
occuring on..." which breaks some Objective-C code. Working on getting a test
case...
llvm-svn: 104150
2010-05-19 21:07:14 +00:00
Jakob Stoklund Olesen
5d4c134a94
Add MachineInstr::readsVirtualRegister() in preparation for proper handling of
...
partial redefines.
We are going to treat a partial redefine of a virtual register as a
read-modify-write:
%reg1024:6 = OP
Unless the register is fully clobbered:
%reg1024:6 = OP, %reg1024<imp-def>
MachineInstr::readsVirtualRegister() knows the difference. The first case is a
read, the second isn't.
llvm-svn: 104149
2010-05-19 20:36:22 +00:00
Eric Christopher
b95493c495
Few more simple tls testcases.
...
llvm-svn: 104148
2010-05-19 20:35:15 +00:00
Evan Cheng
738e920edf
Code refactoring: pull SchedPreference enum from TargetLowering.h to TargetMachine.h and put it in its own namespace.
...
llvm-svn: 104147
2010-05-19 20:19:50 +00:00
Jakob Stoklund Olesen
e11cdf8cc8
TwoAddressInstructionPass doesn't really know how to merge live intervals when
...
lowering REG_SEQUENCE instructions.
Insert copies for REG_SEQUENCE sources not killed to avoid breaking later passes.
llvm-svn: 104146
2010-05-19 20:08:00 +00:00
Mikhail Glushenkov
59a61fd7cc
llvmc: report an error if a child process segfaults.
...
llvm-svn: 104145
2010-05-19 19:24:32 +00:00
Eric Christopher
6304da132f
Attempt to run this test on x86 only.
...
llvm-svn: 104143
2010-05-19 18:59:37 +00:00
Bob Wilson
f070b1b571
Testcase to go with 104141.
...
llvm-svn: 104142
2010-05-19 18:58:37 +00:00
Bob Wilson
6a1bfd282b
When expanding a vector_shuffle, the element type may not be legal and may
...
need to be promoted. The BUILD_VECTOR and EXTRACT_VECTOR_ELT nodes generated
here already allow the promoted type to be used without further changes, so
just do the promotion. This fixes part of pr7167.
llvm-svn: 104141
2010-05-19 18:48:32 +00:00
Douglas Gregor
0e0f67ec95
Fill in some silly defaults to silence a GCC warning
...
llvm-svn: 104140
2010-05-19 18:41:43 +00:00
Douglas Gregor
a72a4e3229
Cache the linkage of a type within its canonical type, eliminating
...
some seriously non-linear performance with deeply nested template
instantiations, as shown in PR6998.
llvm-svn: 104139
2010-05-19 18:39:18 +00:00
Ted Kremenek
84d2bd759f
Remove clang_isDeclarationADefinition() since its functionality is already provided by clang_isCursorDefinition().
...
llvm-svn: 104138
2010-05-19 18:36:55 +00:00
Ted Kremenek
26bde774df
Add clang support for IBOutletCollection.
...
llvm-svn: 104135
2010-05-19 17:38:06 +00:00
Daniel Dunbar
52e37becf6
MC/X86: Add missing entry for TAILJMP_1 to getRelaxedOpcode().
...
llvm-svn: 104122
2010-05-19 17:20:58 +00:00
Douglas Gregor
6044d691bb
Revert r104106; it's breaking linking of Boost.Serialization.
...
llvm-svn: 104121
2010-05-19 17:02:24 +00:00
Daniel Dunbar
d2f78e755f
MC/X86: Lower TAILCALLd[64] to JMP_1, to allow relaxation and to avoid same
...
prefix byte problem as in r104062.
- As a total hack to keep the TAILCALL markers in the output, which some tests depend on, this invents a new TAILJMP_1 instruction.
llvm-svn: 104120
2010-05-19 15:26:43 +00:00
Benjamin Kramer
fdb61d78e9
Implement codegen for __builtin_isnormal.
...
llvm-svn: 104118
2010-05-19 11:24:26 +00:00
Chandler Carruth
8fd2b8935e
Provide a naming class for UnresolvedLookupExprs, even when occuring on
...
template names. We were completely missing naming classes for many unqualified
lookups, but this didn't trigger code paths that need it. This removes part of
an optimization that re-uses the template name lookup done by the parser to
determine if explicit template arguments actually form a template-id.
Unfortunately the technique for avoiding the duplicate lookup lost needed data
such as the class context in which the lookup succeeded.
llvm-svn: 104117
2010-05-19 09:39:06 +00:00
Daniel Dunbar
b243dfb085
MC/X86: Strip spurious operands from TAILJMPr64 as we do for CALL64r and
...
CALL64pcrel32, for the same reason.
llvm-svn: 104116
2010-05-19 08:07:12 +00:00
Evan Cheng
daeca2d156
t2LEApcrel and tLEApcrel are re-materializable. This makes it possible to hoist more loads during machine LICM.
...
llvm-svn: 104115
2010-05-19 07:28:01 +00:00
Evan Cheng
b7704fee4c
Use 'adr' for LEApcrel and LEApcrel. Mark LEApcrel re-materializable.
...
llvm-svn: 104114
2010-05-19 07:26:50 +00:00
Tobias Grosser
4518c866b4
Update autoconf/automake versions in the documentation to match the versions used in Autogen.sh
...
llvm-svn: 104113
2010-05-19 07:00:17 +00:00
Daniel Dunbar
4f6c7c6d94
MC/X86: Lower MOV{8,16,32,64}{rm,mr} to fixed-register forms, as appropriate.
...
llvm-svn: 104112
2010-05-19 06:20:44 +00:00
Evan Cheng
dd7f566597
Mark pattern-less mayLoad / mayStore instructions neverHasSideEffects. These do not have other un-modeled side effects.
...
llvm-svn: 104111
2010-05-19 06:07:03 +00:00
Evan Cheng
e89f5ae9d4
Target instruction selection should copy memoperands.
...
llvm-svn: 104110
2010-05-19 06:06:09 +00:00