Evan Cheng
d4d1a51895
Pretty print DBG_VALUE machine instructions.
...
Before:
DBG_VALUE %RSI, 0, !-1; dbg:SimpleRegisterCoalescing.cpp:2707
Now:
DBG_VALUE %RSI, 0, !"this"; dbg:SimpleRegisterCoalescing.cpp:2707
llvm-svn: 102518
2010-04-28 20:03:13 +00:00
Chris Lattner
e82411b47f
add regex support for -verify mode. You can now do things like
...
expected-error-re {{someregex}}
Patch by mike-m!
llvm-svn: 102516
2010-04-28 20:02:30 +00:00
Chris Lattner
08e9e72fa9
Rework global alignment computation again. Now we do round up
...
alignment of globals to the preferred alignment, but only when
there is no section specified on the global (by far the common
case).
llvm-svn: 102515
2010-04-28 19:58:07 +00:00
David Chisnall
01aa46795e
Changed signature of GenerateMessageSend() function to pass the ObjCInterfaceDecl for class messages and removed the boolean IsClassMessage argument, which wasn't used anywhere.
...
Emitted some metadata on message sends to allow a later pass to do some speculative inlining of class methods (GNU runtime). Speculative inlining of instance methods requires type feedback to be useful (work in progress), but for class methods it works quite nicely.
llvm-svn: 102514
2010-04-28 19:33:36 +00:00
Devang Patel
888c17073a
While lowering dbg_declare, emit DBG_VALUE machine instruction if alloca matching llvm.dbg.declare intrinsic is missing.
...
llvm-svn: 102513
2010-04-28 19:27:33 +00:00
Nate Begeman
cb2563f0c3
Stub out NEON support, more to come.
...
llvm-svn: 102512
2010-04-28 18:37:32 +00:00
Jakob Stoklund Olesen
06e7242d32
Recompute kill flags from live intervals after coalescing instead of trying to
...
update them. Computing kill flags is notoriously difficult, and the coalescer
would get it wrong sometimes, and it would completely skip physical registers.
Now we simply remove kill flags based on the live intervals after coalescing.
This is a few percent slower, but now we get correct kill flags for physical
registers after coalescing.
llvm-svn: 102510
2010-04-28 18:28:39 +00:00
Jakob Stoklund Olesen
96fad31694
Teach X86FloatingPoint that a register can be killed multiple times by the same
...
instruction.
This instruction would crash the pass:
INLINEASM <es:foo $0 $1>, 9, %FP0<kill>, 9, %FP0<kill>, 14, %EFLAGS<earlyclobber,def,dead>
Now it doesn't.
llvm-svn: 102509
2010-04-28 18:28:37 +00:00
Bob Wilson
7ebb5e4cb0
Undo most of my previous whitespace fix. I think I like it better this way
...
after all.
llvm-svn: 102508
2010-04-28 18:18:36 +00:00
Bob Wilson
a2dbebc431
Fix inconsistent use of HOSTS and TARGETS variables.
...
llvm-svn: 102505
2010-04-28 18:06:27 +00:00
Bob Wilson
5f1074adde
Fix whitespace.
...
llvm-svn: 102504
2010-04-28 17:50:03 +00:00
Daniel Dunbar
edd5bae86c
Revert "Fix for PR6953: per gcc, regparm and noreturn affect the compatibility of", it is breaking the builds of quite a few projects (emacs, dovecot, gnutar, bison).
...
llvm-svn: 102501
2010-04-28 16:20:58 +00:00
Fariborz Jahanian
c83726e64e
More of Sema to implement initialization of
...
ivar of c++ object types.
llvm-svn: 102500
2010-04-28 16:11:27 +00:00
Benjamin Kramer
9c05bf46d1
Remove unused function.
...
llvm-svn: 102499
2010-04-28 15:54:45 +00:00
Benjamin Kramer
d76b698ca6
Reduce string trashing in getQualifiedNameAsString.
...
llvm-svn: 102498
2010-04-28 14:33:51 +00:00
David Chisnall
d472c85285
Emit the correct symbol name for the class (GNU runtime).
...
llvm-svn: 102497
2010-04-28 14:29:56 +00:00
Abramo Bagnara
41160fed4c
Written storage class for declarations inside linkage specifications without braces is none.
...
llvm-svn: 102496
2010-04-28 13:11:54 +00:00
Evan Cheng
050df1b8de
Enable i16 to i32 promotion by default.
...
llvm-svn: 102493
2010-04-28 08:30:49 +00:00
Evan Cheng
f100557c9a
Try operation promotion only if regular dag combine and target-specific ones failed to do anything.
...
llvm-svn: 102492
2010-04-28 07:10:39 +00:00
Douglas Gregor
a02bb34155
When the qualifier of a id-expression is non-dependent but not
...
complete, return an error rather than falling back to building a
dependent declaration reference, since we might not be in a dependent
context. Fixes a fiendish crash-on-invalid in Boost.FunctionTypes that
I wasn't able to reduce to anything useful.
llvm-svn: 102491
2010-04-28 07:04:26 +00:00
Douglas Gregor
7988def89f
Improve name mangling for dependent template names (e.g., typename
...
T::template apply<U>), handling a few cases where we previously failed
and performing substitutions on such dependent names. Fixes a crash in
Boost.PropertyTree.
llvm-svn: 102490
2010-04-28 05:58:56 +00:00
Douglas Gregor
1614237822
When instantiating a function template specialization following
...
template argument deduction, use the lexical declaration context as
the owner for friend function templates. Fixes 2 failures in
Boost.Graph.
llvm-svn: 102489
2010-04-28 04:52:24 +00:00
Evan Cheng
d21f564543
Unbreak the build. Only form shld / shrd after legalization.
...
llvm-svn: 102488
2010-04-28 02:25:18 +00:00
Evan Cheng
fe420adde0
Update tests.
...
llvm-svn: 102487
2010-04-28 01:53:13 +00:00
Devang Patel
50c9431203
Emit debug info for byval parameters.
...
llvm-svn: 102486
2010-04-28 01:39:28 +00:00
Evan Cheng
347e3b8f15
Rather than having a ton of patterns for double shift instructions, e.g. SHLD16rrCL, just perform custom dag combine to form x86 specific dag so they match to the same pattern. This also makes sure later dag combine do not cause isel to miss them (e.g. promoting i16 to i32).
...
llvm-svn: 102485
2010-04-28 01:18:01 +00:00
Chris Lattner
a3facc5cb5
further simplify EmitAlignment by eliminating the
...
ForcedAlignBits argument, tweaking the single client of it.
llvm-svn: 102484
2010-04-28 01:08:40 +00:00
Chris Lattner
72bdee4c10
remove a dead argument to EmitAlignment.
...
llvm-svn: 102483
2010-04-28 01:06:02 +00:00
Chris Lattner
9e06e53fc6
remove some default arguments to EmitAlignment.
...
llvm-svn: 102482
2010-04-28 01:05:45 +00:00
Devang Patel
173b2b9d05
Refactor.
...
llvm-svn: 102481
2010-04-28 01:03:09 +00:00
Dan Gohman
2f1ae06c45
Rewrite the section on trap values to contain a generic description
...
of dependence and define trap values in terms of dependence, instead
of trying to cover the concept with a flurry of ad-hoc rules.
The dependence model isn't complete yet, but it's already much more
rigorous than the description it replaces.
llvm-svn: 102479
2010-04-28 00:49:41 +00:00
Dan Gohman
61110aed26
Fix spelling errors.
...
llvm-svn: 102478
2010-04-28 00:36:01 +00:00
Stuart Hastings
c0458f1a40
Tweak x86 INC/DEC generation to look for CopyToReg or SETCC. Radar 7866163.
...
llvm-svn: 102477
2010-04-28 00:35:10 +00:00
Chris Lattner
4bd85e47bf
further clarify alignment of globals, fix instcombine
...
to not increase the alignment of globals with an assigned
alignment and section.
llvm-svn: 102476
2010-04-28 00:31:12 +00:00
Chris Lattner
78e00bcb76
improve the global variable alignment description.
...
it is not generally valid for targets to overalign
them when an alignment is specified.
llvm-svn: 102474
2010-04-28 00:13:42 +00:00
John McCall
d06fb865eb
Properly pass the address of a lazily-generated function declaration with
...
incomplete type. Fixes PR6911.
llvm-svn: 102473
2010-04-28 00:00:30 +00:00
Devang Patel
12f6855f85
Use MachineOperand::is* predicates.
...
llvm-svn: 102472
2010-04-27 22:24:37 +00:00
Devang Patel
cfc76fdaf1
Use isReg(), isImm() and isFPImm().
...
llvm-svn: 102470
2010-04-27 22:04:41 +00:00
Devang Patel
1f34c2727d
Check operand type first.
...
llvm-svn: 102468
2010-04-27 21:49:04 +00:00
Evan Cheng
9e3a4ef089
Fix obvious typos.
...
llvm-svn: 102467
2010-04-27 21:46:03 +00:00
Douglas Gregor
1524333004
It's okay to refer to non-type template parameters anywhere they are
...
visible. Fixes the remaining two failures in Boost.ScopeExit.
llvm-svn: 102466
2010-04-27 21:10:04 +00:00
Abramo Bagnara
3bca8e0f2f
Removed spaces at end of line. (Test commit.)
...
llvm-svn: 102465
2010-04-27 21:08:25 +00:00
Eli Friedman
7955e52f5c
Fix for PR6953: per gcc, regparm and noreturn affect the compatibility of
...
function types.
This could potentially have unexpected side-effects, so look here if there are
new regressions.
llvm-svn: 102464
2010-04-27 21:07:06 +00:00
Devang Patel
1a0bbe25e3
Ignore DBG_VALUE instructions that points to undef values.
...
llvm-svn: 102463
2010-04-27 20:54:45 +00:00
Douglas Gregor
199db36b79
When explicitly building a temporary object (CXXTemporaryObjectExpr),
...
keep track of whether we need to zero-initialize storage prior to
calling its constructor. Previously, we were only tracking this when
implicitly constructing the object (a CXXConstructExpr).
Fixes Boost's value-initialization tests, which means that the
Boost.Config library now passes all of its tests.
llvm-svn: 102461
2010-04-27 20:36:09 +00:00
David Chisnall
e6d0073fa9
Fixed message send to void (broken by my last commit - GNU runtime).
...
llvm-svn: 102459
2010-04-27 20:33:30 +00:00
Evan Cheng
3b928af28f
SRA promotion is also not free.
...
llvm-svn: 102456
2010-04-27 19:48:31 +00:00
Evan Cheng
e813690b7a
- When legal, promote a load to zextload rather than ext load.
...
- Catch more further dag combine opportunities as result of operand promotion, e.g. (i32 anyext (i16 trunc (i32 x))) -> (i32 x)
llvm-svn: 102455
2010-04-27 19:48:13 +00:00
Devang Patel
6c74a872a8
Identify when a lexical scope is split in to multiple instruction ranges. Emit such ranges using DW_AT_ranges.
...
This patch fixes bug (PR6894) introduced by previous version of this patch.
llvm-svn: 102454
2010-04-27 19:46:33 +00:00
Evan Cheng
eb828b6391
Do not count kill, implicit_def instructions as printed instructions.
...
llvm-svn: 102453
2010-04-27 19:38:45 +00:00