Daniel Dunbar [Fri, 30 Apr 2010 17:12:23 +0000 (17:12 +0000)]
Default OPTIMIZE_OPTION to -O2 on FreeBSD, at the request of the Clang/FreeBSD
folks. LLVM/Clang is miscompiled by the standard GCC at -O3.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102719
91177308-0d34-0410-b5e6-
96231b3b80d8
Benjamin Kramer [Fri, 30 Apr 2010 13:40:27 +0000 (13:40 +0000)]
SmallBitVector: Rework find_first/find_next and tweak test to test them (at least on 64 bit platforms).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102712
91177308-0d34-0410-b5e6-
96231b3b80d8
Benjamin Kramer [Fri, 30 Apr 2010 12:29:39 +0000 (12:29 +0000)]
Implement a read/write operator[] for SmallBitVector with a proxy class.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102709
91177308-0d34-0410-b5e6-
96231b3b80d8
Benjamin Kramer [Fri, 30 Apr 2010 11:34:01 +0000 (11:34 +0000)]
Make sure SmallBitVector actually uses the small case and fix latent bugs.
- We can't use PointerIntPair here since we require the discrimination bit to be in the LSB.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102707
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Fri, 30 Apr 2010 06:00:56 +0000 (06:00 +0000)]
Fix test.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102694
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Fri, 30 Apr 2010 01:12:32 +0000 (01:12 +0000)]
Another sibcall bug. If caller and callee calling conventions differ, then it's only safe to do a tail call if the results are returned in the same way.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102683
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Fri, 30 Apr 2010 00:32:51 +0000 (00:32 +0000)]
Temporarily disable SelectionDAG kill flags, which are causing trouble.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102680
91177308-0d34-0410-b5e6-
96231b3b80d8
Jeffrey Yasskin [Fri, 30 Apr 2010 00:16:10 +0000 (00:16 +0000)]
Fix the OProfileJITEventListener build after r101844 removed
MachineFunction::DefaultDebugLoc. We now use the same technique as
DwarfDebug::beginFunction to find the starting line number for a
function.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102679
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Fri, 30 Apr 2010 00:08:21 +0000 (00:08 +0000)]
Set register kill flags on the SelectionDAG path, at least in the
easy cases.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102678
91177308-0d34-0410-b5e6-
96231b3b80d8
Jakob Stoklund Olesen [Thu, 29 Apr 2010 23:47:46 +0000 (23:47 +0000)]
Reject really weird coalescer case when trying to merge identical subregisters
of different register classes. e.g.
%reg1048:3<def> = EXTRACT_SUBREG %RAX<kill>, 3
Where %reg1048 is a GR32 register. This is not impossible to handle, but it is
pretty hard and very rare.
This should unbreak the dragonegg builder.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102672
91177308-0d34-0410-b5e6-
96231b3b80d8
Nick Lewycky [Thu, 29 Apr 2010 23:37:44 +0000 (23:37 +0000)]
The llc -f flag was removed.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102670
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Thu, 29 Apr 2010 23:30:41 +0000 (23:30 +0000)]
Don't leave Base.FrameIndex uninitialized, so that it doesn't
print randomly in debug output.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102668
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 29 Apr 2010 23:27:32 +0000 (23:27 +0000)]
add some more (void)'s to prototypes for PR6961
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102667
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Thu, 29 Apr 2010 23:25:34 +0000 (23:25 +0000)]
Fix typos in assertion strings.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102666
91177308-0d34-0410-b5e6-
96231b3b80d8
Jakob Stoklund Olesen [Thu, 29 Apr 2010 22:21:48 +0000 (22:21 +0000)]
Slightly verboser debug spew from coalescer
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102663
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Thu, 29 Apr 2010 20:48:12 +0000 (20:48 +0000)]
Missed earlier. This is part of previous check-in. (r102661 - refactor.)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102662
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Thu, 29 Apr 2010 20:40:36 +0000 (20:40 +0000)]
Refactor.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102661
91177308-0d34-0410-b5e6-
96231b3b80d8
Dale Johannesen [Thu, 29 Apr 2010 19:32:19 +0000 (19:32 +0000)]
Make naked functions work on PPC.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102657
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Thu, 29 Apr 2010 18:52:10 +0000 (18:52 +0000)]
Print variable scope name in DEBUG_VALUE comment. Useful in some cases. e.g.
##DEBUG_VALUE: runOnMachineFunction:this <- RDI+0
##DEBUG_VALUE: runOnMachineFunction:fn <- RSI+0
##DEBUG_VALUE: DeadDefs <- undef ## SimpleRegisterCoalescing.cpp:2706
##DEBUG_VALUE: getRegInfo:this <- [%rsp+$56]+$0
##DEBUG_VALUE: getTarget:this <- [%rsp+$56]+$0
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102655
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Thu, 29 Apr 2010 18:51:00 +0000 (18:51 +0000)]
Remove DBG_VALUE which reference dead stack slots.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102654
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Thu, 29 Apr 2010 18:50:36 +0000 (18:50 +0000)]
DO not push DBG_VALUE machine instructions for inlined fuction arguments in entry block.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102653
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Thu, 29 Apr 2010 18:50:35 +0000 (18:50 +0000)]
Add DenseMapInfo for int.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102652
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Thu, 29 Apr 2010 18:46:52 +0000 (18:46 +0000)]
llc no longer requires the -f option to overwrite files.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102651
91177308-0d34-0410-b5e6-
96231b3b80d8
Bob Wilson [Thu, 29 Apr 2010 18:04:29 +0000 (18:04 +0000)]
Don't remove libLTO.dylib if it's not being installed in Developer/usr/lib;
just leave it in Developer/usr/local/lib.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102646
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Thu, 29 Apr 2010 16:57:54 +0000 (16:57 +0000)]
Elaborate on a comment.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102637
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Thu, 29 Apr 2010 16:29:02 +0000 (16:29 +0000)]
Remove dead option.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102621
91177308-0d34-0410-b5e6-
96231b3b80d8
Duncan Sands [Thu, 29 Apr 2010 16:10:30 +0000 (16:10 +0000)]
Verify metadata harder. In particular, check that module
level metadata does not have any function local operands.
This would have caught the problem found in PR6112.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102620
91177308-0d34-0410-b5e6-
96231b3b80d8
Duncan Sands [Thu, 29 Apr 2010 12:32:45 +0000 (12:32 +0000)]
Fix comment typo.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102612
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Thu, 29 Apr 2010 06:58:53 +0000 (06:58 +0000)]
Add comment.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102606
91177308-0d34-0410-b5e6-
96231b3b80d8
Torok Edwin [Thu, 29 Apr 2010 06:43:12 +0000 (06:43 +0000)]
Fix PR6910.
Limit alignment in SmallVector 8, otherwise GCC assumes 16 byte alignment.
opetaror new, and malloc only return 8-byte aligned memory on 32-bit Linux,
which cause a crash if code is compiled with -O3 (or -ftree-vectorize) and some
SmallVector code is vectorized.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102604
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Thu, 29 Apr 2010 06:33:38 +0000 (06:33 +0000)]
Re-enable 102565 with fixes.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102602
91177308-0d34-0410-b5e6-
96231b3b80d8
Nick Lewycky [Thu, 29 Apr 2010 05:54:29 +0000 (05:54 +0000)]
Fix typo.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102599
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Thu, 29 Apr 2010 05:08:22 +0000 (05:08 +0000)]
Load folding tail call should not use ebp / rbp after it's popped. PEI
should use esp / rsp to reference frame instead.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102596
91177308-0d34-0410-b5e6-
96231b3b80d8
Mon P Wang [Thu, 29 Apr 2010 04:00:56 +0000 (04:00 +0000)]
Add support for assemblers that don't support periods in a name
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102594
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Thu, 29 Apr 2010 03:34:19 +0000 (03:34 +0000)]
Temporarily disable my changes to unbreak the build.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102590
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Thu, 29 Apr 2010 01:40:30 +0000 (01:40 +0000)]
Do not generate duplicate dbg_value instructions for function arguments.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102585
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Thu, 29 Apr 2010 01:39:13 +0000 (01:39 +0000)]
Fix missing #include.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102584
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Thu, 29 Apr 2010 01:23:55 +0000 (01:23 +0000)]
Avoid emitting a dbg_value machineinstr that's not going to be inserted into entry block.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102581
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Thu, 29 Apr 2010 01:13:30 +0000 (01:13 +0000)]
Frame index can be negative.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102577
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Thu, 29 Apr 2010 00:59:34 +0000 (00:59 +0000)]
Check Reg against zero.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102573
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Wed, 28 Apr 2010 23:52:26 +0000 (23:52 +0000)]
- Really preserve dbg_value instructions when the register is spilled.
- Also, update dbg_value is the value is being re-matted from a frame slot, e.g. fixed slots for arguments.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102565
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Wed, 28 Apr 2010 23:24:13 +0000 (23:24 +0000)]
tidy up.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102558
91177308-0d34-0410-b5e6-
96231b3b80d8
Kevin Enderby [Wed, 28 Apr 2010 23:20:40 +0000 (23:20 +0000)]
Fixed the word sized Bit Scan Forward/Reverse instructions, they needed the
Operand size override prefix to be part of their records.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102556
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Wed, 28 Apr 2010 23:08:54 +0000 (23:08 +0000)]
Replace r102368 with code that's less fragile. This creates DBG_VALUE instructions for function arguments early and insert them after instruction selection is done.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102554
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 28 Apr 2010 22:34:35 +0000 (22:34 +0000)]
fix this to work with objdir != srcdir
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102547
91177308-0d34-0410-b5e6-
96231b3b80d8
Dale Johannesen [Wed, 28 Apr 2010 22:23:46 +0000 (22:23 +0000)]
Fix comment.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102545
91177308-0d34-0410-b5e6-
96231b3b80d8
Dale Johannesen [Wed, 28 Apr 2010 22:17:33 +0000 (22:17 +0000)]
Test for llvm-gcc checkin 102543.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102544
91177308-0d34-0410-b5e6-
96231b3b80d8
Bob Wilson [Wed, 28 Apr 2010 21:08:01 +0000 (21:08 +0000)]
Add an option to the Apple-style build to control whether libLTO.dylib should
be installed. Disable it by default.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102531
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Grosbach [Wed, 28 Apr 2010 20:33:09 +0000 (20:33 +0000)]
Add sizes non-floating point versions for the eh sjlj intrinsic expansions.
rdar://
7895451
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102526
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Wed, 28 Apr 2010 20:27:48 +0000 (20:27 +0000)]
Update tests. Now DBG_VALUE instruction is created only if alloca corresponding to llvm.dbg.declare is missing.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102524
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 28 Apr 2010 20:24:45 +0000 (20:24 +0000)]
declare targets with (void) instead of () since this is a C header.
Patch by Lars R in PR6961.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102523
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 28 Apr 2010 20:16:12 +0000 (20:16 +0000)]
fix PR6112 - When globalopt (or any other pass) does RAUW(@G, %G),
metadata references in non-function-local MDNodes should drop to
null.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102519
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Wed, 28 Apr 2010 20:03:13 +0000 (20:03 +0000)]
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
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102518
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 28 Apr 2010 19:58:07 +0000 (19:58 +0000)]
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).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102515
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Wed, 28 Apr 2010 19:27:33 +0000 (19:27 +0000)]
While lowering dbg_declare, emit DBG_VALUE machine instruction if alloca matching llvm.dbg.declare intrinsic is missing.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102513
91177308-0d34-0410-b5e6-
96231b3b80d8
Jakob Stoklund Olesen [Wed, 28 Apr 2010 18:28:39 +0000 (18:28 +0000)]
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.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102510
91177308-0d34-0410-b5e6-
96231b3b80d8
Jakob Stoklund Olesen [Wed, 28 Apr 2010 18:28:37 +0000 (18:28 +0000)]
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.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102509
91177308-0d34-0410-b5e6-
96231b3b80d8
Bob Wilson [Wed, 28 Apr 2010 18:18:36 +0000 (18:18 +0000)]
Undo most of my previous whitespace fix. I think I like it better this way
after all.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102508
91177308-0d34-0410-b5e6-
96231b3b80d8
Bob Wilson [Wed, 28 Apr 2010 18:06:27 +0000 (18:06 +0000)]
Fix inconsistent use of HOSTS and TARGETS variables.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102505
91177308-0d34-0410-b5e6-
96231b3b80d8
Bob Wilson [Wed, 28 Apr 2010 17:50:03 +0000 (17:50 +0000)]
Fix whitespace.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102504
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Wed, 28 Apr 2010 08:30:49 +0000 (08:30 +0000)]
Enable i16 to i32 promotion by default.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102493
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Wed, 28 Apr 2010 07:10:39 +0000 (07:10 +0000)]
Try operation promotion only if regular dag combine and target-specific ones failed to do anything.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102492
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Wed, 28 Apr 2010 02:25:18 +0000 (02:25 +0000)]
Unbreak the build. Only form shld / shrd after legalization.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102488
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Wed, 28 Apr 2010 01:53:13 +0000 (01:53 +0000)]
Update tests.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102487
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Wed, 28 Apr 2010 01:39:28 +0000 (01:39 +0000)]
Emit debug info for byval parameters.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102486
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Wed, 28 Apr 2010 01:18:01 +0000 (01:18 +0000)]
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).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102485
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 28 Apr 2010 01:08:40 +0000 (01:08 +0000)]
further simplify EmitAlignment by eliminating the
ForcedAlignBits argument, tweaking the single client of it.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102484
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 28 Apr 2010 01:06:02 +0000 (01:06 +0000)]
remove a dead argument to EmitAlignment.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102483
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 28 Apr 2010 01:05:45 +0000 (01:05 +0000)]
remove some default arguments to EmitAlignment.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102482
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Wed, 28 Apr 2010 01:03:09 +0000 (01:03 +0000)]
Refactor.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102481
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Wed, 28 Apr 2010 00:49:41 +0000 (00:49 +0000)]
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.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102479
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Wed, 28 Apr 2010 00:36:01 +0000 (00:36 +0000)]
Fix spelling errors.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102478
91177308-0d34-0410-b5e6-
96231b3b80d8
Stuart Hastings [Wed, 28 Apr 2010 00:35:10 +0000 (00:35 +0000)]
Tweak x86 INC/DEC generation to look for CopyToReg or SETCC. Radar
7866163.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102477
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 28 Apr 2010 00:31:12 +0000 (00:31 +0000)]
further clarify alignment of globals, fix instcombine
to not increase the alignment of globals with an assigned
alignment and section.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102476
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 28 Apr 2010 00:13:42 +0000 (00:13 +0000)]
improve the global variable alignment description.
it is not generally valid for targets to overalign
them when an alignment is specified.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102474
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Tue, 27 Apr 2010 22:24:37 +0000 (22:24 +0000)]
Use MachineOperand::is* predicates.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102472
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Tue, 27 Apr 2010 22:04:41 +0000 (22:04 +0000)]
Use isReg(), isImm() and isFPImm().
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102470
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Tue, 27 Apr 2010 21:49:04 +0000 (21:49 +0000)]
Check operand type first.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102468
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Tue, 27 Apr 2010 21:46:03 +0000 (21:46 +0000)]
Fix obvious typos.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102467
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Tue, 27 Apr 2010 20:54:45 +0000 (20:54 +0000)]
Ignore DBG_VALUE instructions that points to undef values.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102463
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Tue, 27 Apr 2010 19:48:31 +0000 (19:48 +0000)]
SRA promotion is also not free.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102456
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Tue, 27 Apr 2010 19:48:13 +0000 (19:48 +0000)]
- 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)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102455
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Tue, 27 Apr 2010 19:46:33 +0000 (19:46 +0000)]
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.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102454
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Tue, 27 Apr 2010 19:38:45 +0000 (19:38 +0000)]
Do not count kill, implicit_def instructions as printed instructions.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102453
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 27 Apr 2010 07:41:44 +0000 (07:41 +0000)]
round zero-byte .zerofill directives up to 1 byte. This
should fix some "g++.dg-struct-layout-1" failures,
rdar://
7886017
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102421
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 27 Apr 2010 07:28:11 +0000 (07:28 +0000)]
fix wordo
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102418
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 27 Apr 2010 06:57:10 +0000 (06:57 +0000)]
remove some comments.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102417
91177308-0d34-0410-b5e6-
96231b3b80d8
Dale Johannesen [Tue, 27 Apr 2010 02:10:05 +0000 (02:10 +0000)]
Revert a small part of 102372; this fixes at least one
of the dbg testsuite regressions. I don't think this is
really the right fix; this change exposed an existing problem
upstream somewhere.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102410
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Tue, 27 Apr 2010 00:55:25 +0000 (00:55 +0000)]
r98363 deleted a '!' when cleaning up whitespace. This caused globals which are
*not* declarations to *not* be placed in the "preserve" list.
<rdar://problem/
7870735>
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102405
91177308-0d34-0410-b5e6-
96231b3b80d8
Dale Johannesen [Tue, 27 Apr 2010 00:01:42 +0000 (00:01 +0000)]
Un-XFAIL this on ppc. My enabling of dbg_declare handling
in ISel fixed it.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102404
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 26 Apr 2010 23:49:32 +0000 (23:49 +0000)]
Fix a problem that lower invoke has with allocas (PR6694), and
add a version of createLowerInvokePass that allows the client
to specify whether it wants "expensive" or "cheap" lowering.
Patch by Alex Mac!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102402
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 26 Apr 2010 23:41:43 +0000 (23:41 +0000)]
add a comment in verbose-asm mode indicating why a noop is being generated.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102401
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 26 Apr 2010 23:37:21 +0000 (23:37 +0000)]
on darwin empty functions need to codegen into something of non-zero length,
otherwise labels get incorrectly merged. We handled this by emitting a
".byte 0", but this isn't correct on thumb/arm targets where the text segment
needs to be a multiple of 2/4 bytes. Handle this by emitting a noop. This
is more gross than it should be because arm/ppc are not fully mc'ized yet.
This fixes rdar://
7908505
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102400
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Mon, 26 Apr 2010 23:36:52 +0000 (23:36 +0000)]
Integrate Jeffery Yasskin's suggestions with respect to
traps flowing through memory references, add some text to
better cover phi nodes and externally-visible side effects,
add an example of instructions being control-dependent
on a trap value, and reword some of the existing trap rules.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102399
91177308-0d34-0410-b5e6-
96231b3b80d8
Bob Wilson [Mon, 26 Apr 2010 23:20:08 +0000 (23:20 +0000)]
Handle register-to-register copies within the tGPR class.
Radar
7896289
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102396
91177308-0d34-0410-b5e6-
96231b3b80d8
Bob Wilson [Mon, 26 Apr 2010 22:56:56 +0000 (22:56 +0000)]
Avoid adding a null MD node operand, which crashes with "-debug" when trying
to print the operand.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102395
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Mon, 26 Apr 2010 22:54:28 +0000 (22:54 +0000)]
Use DW_AT_entry_pc instead of DW_AT_low_pc/DW_AT_high_pc pair. This simplifies debug range entries.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102394
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Mon, 26 Apr 2010 21:46:36 +0000 (21:46 +0000)]
When checking whether the special handling for an addrec increment which
doesn't dominate the header is needed, don't check whether the increment
expression has computable loop evolution. While the operands of an
addrec are required to be loop-invariant, they're not required to
dominate any part of the loop. This fixes PR6914.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102389
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Mon, 26 Apr 2010 21:37:43 +0000 (21:37 +0000)]
Add a comment to this test.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102387
91177308-0d34-0410-b5e6-
96231b3b80d8
Jeffrey Yasskin [Mon, 26 Apr 2010 21:21:24 +0000 (21:21 +0000)]
Consolidate the description of volatile operations, now that some of the
intrinsics have volatile semantics in addition to the load and store
instructions.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102384
91177308-0d34-0410-b5e6-
96231b3b80d8