Bruno Cardoso Lopes [Thu, 7 Aug 2008 19:08:11 +0000 (19:08 +0000)]
Added Mips support for DYNAMIC_STACKALLOC
Fixed bug in adjustMipsStackFrame, which was breaking
while trying to access a dead stack object index. Also added
one more alignment before fixing the callee saved registers
stack offset adjustment.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54485
91177308-0d34-0410-b5e6-
96231b3b80d8
Bruno Cardoso Lopes [Thu, 7 Aug 2008 19:01:24 +0000 (19:01 +0000)]
Add the remaining fp_round libcalls:
FPROUND_F80_F32, FPROUND_PPCF128_F32,
FPROUND_F80_F64, FPROUND_PPCF128_F64
Support for soften float fp_round operands is added, Mips
needs this to round f64->f32.
Also added support to soften float FABS result, Mips doesn't
support double fabs results while in 'single float only' mode.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54484
91177308-0d34-0410-b5e6-
96231b3b80d8
Owen Anderson [Thu, 7 Aug 2008 18:28:07 +0000 (18:28 +0000)]
Do a dominator walk when scheduling copies, rather than a DFS on the CFG. Also, fix a few problems when creating
live intervals for temporaries created by phi elimination.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54483
91177308-0d34-0410-b5e6-
96231b3b80d8
Duncan Sands [Thu, 7 Aug 2008 17:59:54 +0000 (17:59 +0000)]
Use correct compiler component names for objc
and objc++.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54474
91177308-0d34-0410-b5e6-
96231b3b80d8
Duncan Sands [Thu, 7 Aug 2008 17:48:08 +0000 (17:48 +0000)]
Move tests of the ObjC++ front-end to their own
directory: some people (guess who!) may build llvm-gcc
with support for objc but not with support for objc++.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54471
91177308-0d34-0410-b5e6-
96231b3b80d8
Matthijs Kooijman [Thu, 7 Aug 2008 16:01:23 +0000 (16:01 +0000)]
Let SRETPromotion properly preserve the function name instead of (implicitly)
postfixing it with a number.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54468
91177308-0d34-0410-b5e6-
96231b3b80d8
Matthijs Kooijman [Thu, 7 Aug 2008 15:58:09 +0000 (15:58 +0000)]
Fix SRETPromotion, it was generating functions without returns statements since
r53941 (but this was not noticed due to the lack of a basic test for
SRETPromotion).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54467
91177308-0d34-0410-b5e6-
96231b3b80d8
Matthijs Kooijman [Thu, 7 Aug 2008 15:55:18 +0000 (15:55 +0000)]
Add a basic test for the SRETPromotion pass.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54466
91177308-0d34-0410-b5e6-
96231b3b80d8
Matthijs Kooijman [Thu, 7 Aug 2008 15:36:46 +0000 (15:36 +0000)]
Move two tests from SRETPromotion to Inline, since they only call opt -inline.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54465
91177308-0d34-0410-b5e6-
96231b3b80d8
Matthijs Kooijman [Thu, 7 Aug 2008 15:14:04 +0000 (15:14 +0000)]
Add some debug output to SRETPromotion.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54464
91177308-0d34-0410-b5e6-
96231b3b80d8
Matthijs Kooijman [Thu, 7 Aug 2008 13:36:30 +0000 (13:36 +0000)]
Silence a warning.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54462
91177308-0d34-0410-b5e6-
96231b3b80d8
Anton Korobeynikov [Thu, 7 Aug 2008 09:55:25 +0000 (09:55 +0000)]
Remove dead forward decl
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54461
91177308-0d34-0410-b5e6-
96231b3b80d8
Anton Korobeynikov [Thu, 7 Aug 2008 09:55:06 +0000 (09:55 +0000)]
Print section flags ok on platforms, which use '@' as comment string. Fix test.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54460
91177308-0d34-0410-b5e6-
96231b3b80d8
Anton Korobeynikov [Thu, 7 Aug 2008 09:54:40 +0000 (09:54 +0000)]
Add assertion for easy debugging of missing stuff
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54459
91177308-0d34-0410-b5e6-
96231b3b80d8
Anton Korobeynikov [Thu, 7 Aug 2008 09:54:23 +0000 (09:54 +0000)]
Switch ARM to new section handling stuff
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54458
91177308-0d34-0410-b5e6-
96231b3b80d8
Anton Korobeynikov [Thu, 7 Aug 2008 09:53:57 +0000 (09:53 +0000)]
Switch Alpha to new section handling stuff
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54457
91177308-0d34-0410-b5e6-
96231b3b80d8
Anton Korobeynikov [Thu, 7 Aug 2008 09:53:38 +0000 (09:53 +0000)]
Use EmitAlignment consistently
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54456
91177308-0d34-0410-b5e6-
96231b3b80d8
Anton Korobeynikov [Thu, 7 Aug 2008 09:53:13 +0000 (09:53 +0000)]
Cleanup
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54455
91177308-0d34-0410-b5e6-
96231b3b80d8
Anton Korobeynikov [Thu, 7 Aug 2008 09:52:54 +0000 (09:52 +0000)]
Cleanup
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54454
91177308-0d34-0410-b5e6-
96231b3b80d8
Anton Korobeynikov [Thu, 7 Aug 2008 09:52:35 +0000 (09:52 +0000)]
Switch IA64 to new section-handling stuff
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54453
91177308-0d34-0410-b5e6-
96231b3b80d8
Anton Korobeynikov [Thu, 7 Aug 2008 09:52:13 +0000 (09:52 +0000)]
Cleanup
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54452
91177308-0d34-0410-b5e6-
96231b3b80d8
Anton Korobeynikov [Thu, 7 Aug 2008 09:51:54 +0000 (09:51 +0000)]
Provide convenient helpers
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54451
91177308-0d34-0410-b5e6-
96231b3b80d8
Anton Korobeynikov [Thu, 7 Aug 2008 09:51:25 +0000 (09:51 +0000)]
Switch Sparc to new section handling stuff. Refactor printing of module-level GVs significantly.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54450
91177308-0d34-0410-b5e6-
96231b3b80d8
Anton Korobeynikov [Thu, 7 Aug 2008 09:51:02 +0000 (09:51 +0000)]
Add hook for constant pool section selection for darwin.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54449
91177308-0d34-0410-b5e6-
96231b3b80d8
Anton Korobeynikov [Thu, 7 Aug 2008 09:50:34 +0000 (09:50 +0000)]
Select section for constant pool entries
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54448
91177308-0d34-0410-b5e6-
96231b3b80d8
Matthijs Kooijman [Thu, 7 Aug 2008 09:00:46 +0000 (09:00 +0000)]
Remove trailing spaces.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54447
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 7 Aug 2008 07:34:50 +0000 (07:34 +0000)]
Don't verify passes when assertions are disabled.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54446
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Thu, 7 Aug 2008 02:54:50 +0000 (02:54 +0000)]
Re-enable elimination of unnecessary SUBREG_TO_REG instructions in
LowerSubregs, and fix an x86-64 isel bug that this exposed.
SUBREG_TO_REG for x86-64 implicit zero extension is only safe for
isel to generate when the source is known to always have zeros in
the high 32 bits. The EXTRACT_SUBREG instruction does not clear
the high 32 bits.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54444
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Thu, 7 Aug 2008 02:23:06 +0000 (02:23 +0000)]
Add an extra example that shouldn't get an and instruction.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54443
91177308-0d34-0410-b5e6-
96231b3b80d8
Dale Johannesen [Thu, 7 Aug 2008 01:30:15 +0000 (01:30 +0000)]
Rewrite JIT handling of GlobalVariables so they
are allocated in the same buffer as the code,
jump tables, etc.
The default JIT memory manager does not handle buffer
overflow well. I didn't introduce this and I'm not
attempting to fix it here, but it is more likely to
be hit now since we're putting more stuff in the
buffer. This affects one test that I know of so far,
MultiSource/Benchmarks/NPB-serial/is.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54442
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Thu, 7 Aug 2008 00:43:25 +0000 (00:43 +0000)]
Factor code that finalize PHI nodes, jump tables, etc. out of SelectBasicBlock. No functionality changes.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54438
91177308-0d34-0410-b5e6-
96231b3b80d8
Owen Anderson [Wed, 6 Aug 2008 23:16:52 +0000 (23:16 +0000)]
SDISel's constant branch folding can fold away self-loops, which doesn't result in any dead blocks, but
rather an incorrect phi input. Add code to UnreachableMachineBlockElim to get rid of these entries.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54432
91177308-0d34-0410-b5e6-
96231b3b80d8
Owen Anderson [Wed, 6 Aug 2008 22:08:58 +0000 (22:08 +0000)]
Correct handle cases where two phis are coalesced together, and correct break up the case where two different
phis want to coalesce with the same vreg.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54426
91177308-0d34-0410-b5e6-
96231b3b80d8
Owen Anderson [Wed, 6 Aug 2008 20:58:38 +0000 (20:58 +0000)]
Oops, didn't mean to commit this.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54425
91177308-0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Wed, 6 Aug 2008 20:57:07 +0000 (20:57 +0000)]
Add libDriver.vcproj to solution file.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54424
91177308-0d34-0410-b5e6-
96231b3b80d8
Owen Anderson [Wed, 6 Aug 2008 20:29:20 +0000 (20:29 +0000)]
We don't need to try to coalesce input vregs that are the same as the output vreg.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54422
91177308-0d34-0410-b5e6-
96231b3b80d8
Owen Anderson [Wed, 6 Aug 2008 18:36:17 +0000 (18:36 +0000)]
Only trim a live interval if the register is not used after the PHI node.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54421
91177308-0d34-0410-b5e6-
96231b3b80d8
Owen Anderson [Wed, 6 Aug 2008 18:35:45 +0000 (18:35 +0000)]
Only remap each VNInfo once when doing renumbering.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54420
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Wed, 6 Aug 2008 18:27:21 +0000 (18:27 +0000)]
Re-introduce the 8-bit subreg zext-inreg patterns for x86-32,
this time using MOV32to32_ and MOV16to16_. Thanks to Evan for
suggesting this.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54418
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Wed, 6 Aug 2008 18:17:32 +0000 (18:17 +0000)]
Fix a shufflevector instcombine that was emitting invalid masks indices
when it meant to be emitting undef indices.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54417
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Wed, 6 Aug 2008 18:06:48 +0000 (18:06 +0000)]
PR2535, not PR2355.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54416
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Wed, 6 Aug 2008 18:04:43 +0000 (18:04 +0000)]
Fix PR2355: bug in ChangeCompareStride. When the loop termination compare is the only use of its iv stride, the stride can be eliminated by moving it to another stride. If the scale is negative, swap the predicate instead of using a inverse predicate.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54415
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Wed, 6 Aug 2008 15:52:50 +0000 (15:52 +0000)]
xchg does not modify FLAGS.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54411
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Wed, 6 Aug 2008 15:18:10 +0000 (15:18 +0000)]
Clarify "node" vs. "value" in some comments.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54409
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 6 Aug 2008 07:35:52 +0000 (07:35 +0000)]
optimize a common idiom generated by clang for bitfield access, PR2638.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54408
91177308-0d34-0410-b5e6-
96231b3b80d8
Bruno Cardoso Lopes [Wed, 6 Aug 2008 06:14:43 +0000 (06:14 +0000)]
Added support for fp callee saved registers.
Added fp register clobbering during calls.
Added AsmPrinter support for "fmask", a bitmask that indicates where on the
stack the fp callee saved registers are.
Fixed the stack frame layout for Mips, now the callee saved regs
are in the right stack location (a little documentation about how this
stack frame must look like is present in MipsRegisterInfo.cpp).
This was done using the method MipsRegisterInfo::adjustMipsStackFrame
To be more clear, these are examples of what is solves :
1) FP and RA are also callee saved, and despite they aren't in CSI they
must be saved before the fp callee saved registers.
2) The ABI requires that local varibles are allocated before the callee
saved register area, the opposite behavior from the default allocation.
3) CPU and FPU saved register area must be aligned independent of each
other.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54403
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 6 Aug 2008 05:57:58 +0000 (05:57 +0000)]
stacker is really gone.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54400
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 6 Aug 2008 05:56:52 +0000 (05:56 +0000)]
remove stacker
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54398
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 6 Aug 2008 05:13:06 +0000 (05:13 +0000)]
Zap sitofp/fptoui pairs. In all cases when the sign difference
matters, the result is undefined anyway.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54396
91177308-0d34-0410-b5e6-
96231b3b80d8
Nick Lewycky [Wed, 6 Aug 2008 04:54:03 +0000 (04:54 +0000)]
Reinstate this optimization, but without the miscompile. Thanks to Bill for
tracking down that this was breaking llvm-gcc bootstrap on Linux.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54394
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Wed, 6 Aug 2008 00:10:32 +0000 (00:10 +0000)]
Just grep for through the LL code instead of the ASM code
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54389
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Tue, 5 Aug 2008 23:52:28 +0000 (23:52 +0000)]
Add ARM to the targets to build.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54386
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Tue, 5 Aug 2008 23:36:35 +0000 (23:36 +0000)]
Use strcpy instead of sprintf here. This avoids a GCC 4.3 format-string
warning. There wasn't actually a problem here, because the contents of
the string are known.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54385
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Tue, 5 Aug 2008 23:36:00 +0000 (23:36 +0000)]
Add default architecture.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54384
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Tue, 5 Aug 2008 22:34:21 +0000 (22:34 +0000)]
Pass the computed iteration count value to RewriteLoopExitValues
instead of having it call getIterationCount again.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54380
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Tue, 5 Aug 2008 22:29:16 +0000 (22:29 +0000)]
It's "a static", not "an static"
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54379
91177308-0d34-0410-b5e6-
96231b3b80d8
Owen Anderson [Tue, 5 Aug 2008 22:24:40 +0000 (22:24 +0000)]
Fix breakage on ARM/2008-04-10-ScavengerAssert.ll.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54378
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Tue, 5 Aug 2008 22:23:59 +0000 (22:23 +0000)]
Testcase for PR2629.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54377
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Tue, 5 Aug 2008 22:19:15 +0000 (22:19 +0000)]
Fix PR2620: Fix X86cmppd selection code so it expects operands to be v2f64.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54376
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Tue, 5 Aug 2008 21:51:46 +0000 (21:51 +0000)]
Fix PR2596: out of bound reference.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54375
91177308-0d34-0410-b5e6-
96231b3b80d8
Owen Anderson [Tue, 5 Aug 2008 21:40:45 +0000 (21:40 +0000)]
Correctly handle replacement and removal of PHIs with one incoming register.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54374
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Tue, 5 Aug 2008 21:23:45 +0000 (21:23 +0000)]
Revert r53282. This was causing a miscompile on Linux. Also, the transformation
looks bogus. Please see PR2629 for details on why this is breaking things.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54372
91177308-0d34-0410-b5e6-
96231b3b80d8
Owen Anderson [Tue, 5 Aug 2008 21:18:51 +0000 (21:18 +0000)]
Oops, we were already checking for dead phis. Handle this the proper way, then.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54371
91177308-0d34-0410-b5e6-
96231b3b80d8
Owen Anderson [Tue, 5 Aug 2008 20:51:26 +0000 (20:51 +0000)]
We don't need to update live intervals for dead PHIs.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54369
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 5 Aug 2008 18:29:16 +0000 (18:29 +0000)]
Expand acronyms, suggested by Walter Pawley
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54362
91177308-0d34-0410-b5e6-
96231b3b80d8
Owen Anderson [Tue, 5 Aug 2008 18:27:54 +0000 (18:27 +0000)]
Remove the -disable-correct-folding option, which was ugly and is no longer needed.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54361
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 5 Aug 2008 18:21:08 +0000 (18:21 +0000)]
Capitalize LLVM, suggested by Walt Pawley
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54360
91177308-0d34-0410-b5e6-
96231b3b80d8
Owen Anderson [Tue, 5 Aug 2008 18:19:14 +0000 (18:19 +0000)]
Update the remaining tests not to use -disable-correct-folding, and remove two
that couldn't be updated.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54359
91177308-0d34-0410-b5e6-
96231b3b80d8
Owen Anderson [Tue, 5 Aug 2008 18:08:56 +0000 (18:08 +0000)]
One more -disable-correct-folding case removed.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54358
91177308-0d34-0410-b5e6-
96231b3b80d8
Owen Anderson [Tue, 5 Aug 2008 18:05:58 +0000 (18:05 +0000)]
Remove another -disable-correct-folding use.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54357
91177308-0d34-0410-b5e6-
96231b3b80d8
Owen Anderson [Tue, 5 Aug 2008 18:03:01 +0000 (18:03 +0000)]
Eliminate another use of -disable-correct-folding.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54356
91177308-0d34-0410-b5e6-
96231b3b80d8
Owen Anderson [Tue, 5 Aug 2008 17:52:54 +0000 (17:52 +0000)]
This check is unnecessary, and getting rid of it removes a use of -disable-correct-folding.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54355
91177308-0d34-0410-b5e6-
96231b3b80d8
Owen Anderson [Tue, 5 Aug 2008 17:49:52 +0000 (17:49 +0000)]
Remove the need for -disable-correct-folding from this test.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54354
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Tue, 5 Aug 2008 15:51:44 +0000 (15:51 +0000)]
Fix the AsmWriter to not print extra spaces after parameter attributes.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54351
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Tue, 5 Aug 2008 15:32:23 +0000 (15:32 +0000)]
Trim #includes.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54350
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Tue, 5 Aug 2008 14:45:15 +0000 (14:45 +0000)]
Fix several const-correctness issues, resolving some -Wcast-qual warnings.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54349
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Tue, 5 Aug 2008 14:42:28 +0000 (14:42 +0000)]
Correct an assertion string.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54348
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Tue, 5 Aug 2008 07:20:57 +0000 (07:20 +0000)]
Remove #if 0.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54347
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Tue, 5 Aug 2008 07:10:38 +0000 (07:10 +0000)]
Fix PR2568: Fix bug that cause redudant kill marker after its live interval has been extended due to coalescing.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54346
91177308-0d34-0410-b5e6-
96231b3b80d8
Owen Anderson [Tue, 5 Aug 2008 00:30:10 +0000 (00:30 +0000)]
Remove unneeded iteration. Thanks to Dan for the feedback.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54337
91177308-0d34-0410-b5e6-
96231b3b80d8
Owen Anderson [Tue, 5 Aug 2008 00:27:28 +0000 (00:27 +0000)]
This option doesn't need to be a target option. It can be in SDISel instead.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54336
91177308-0d34-0410-b5e6-
96231b3b80d8
Owen Anderson [Mon, 4 Aug 2008 23:55:29 +0000 (23:55 +0000)]
Update these tests to work by disabling the new correct CFG generation. This flag should ONLY be used to for tests like these.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54334
91177308-0d34-0410-b5e6-
96231b3b80d8
Owen Anderson [Mon, 4 Aug 2008 23:54:43 +0000 (23:54 +0000)]
- Fix SelectionDAG to generate correct CFGs.
- Add a basic machine-level dead block eliminator.
These two have to go together, since many other parts of the code generator are unable to handle the unreachable blocks otherwise created.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54333
91177308-0d34-0410-b5e6-
96231b3b80d8
Eli Friedman [Mon, 4 Aug 2008 23:49:06 +0000 (23:49 +0000)]
PR2621: Improvements to the SCEV AddRec binomial expansion. This
version uses a new algorithm for evaluating the binomial coefficients
which is significantly more efficient for AddRecs of more than 2 terms
(see the comments in the code for details on how the algorithm works).
It also fixes some bugs: it removes the arbitrary length restriction for
AddRecs, it fixes the silent generation of incorrect code for AddRecs
which require a wide calculation width, and it fixes an issue where we
were incorrectly truncating the iteration count too far when evaluating
an AddRec expression narrower than the induction variable.
There are still a few related issues I know of: I think there's
still an issue with the SCEVExpander expansion of AddRec in terms of
the width of the induction variable used. The hack to avoid generating
too-wide integers shouldn't be necessary; instead, the callers should be
considering the cost of the expansion before expanding it (in addition
to not expanding too-wide integers, we might not want to expand
expressions that are really expensive, especially when optimizing for
size; calculating an length-17 32-bit AddRec currently generates about 250
instructions of straight-line code on X86). Also, for long 32-bit
AddRecs on X86, CodeGen really sucks at scheduling the code. I'm planning on
filing follow-up PRs for these issues.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54332
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Mon, 4 Aug 2008 23:42:46 +0000 (23:42 +0000)]
Fix SDISel lowering of PHI nodes to use ComputeValueVTs.
This allows it to work correctly on aggregate values.
This fixes PR2623.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54331
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Mon, 4 Aug 2008 23:30:41 +0000 (23:30 +0000)]
Fix SDISel lowering of zeroinitializer and undef to use ComputeValueVTs.
This allows it to work correctly on nested aggregate values.
This fixes PR2625.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54330
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Mon, 4 Aug 2008 23:09:15 +0000 (23:09 +0000)]
Add an assert to catch invalid VECTOR_SHUFFLE mask indices.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54329
91177308-0d34-0410-b5e6-
96231b3b80d8
Bruno Cardoso Lopes [Mon, 4 Aug 2008 07:12:52 +0000 (07:12 +0000)]
Mips ISelLowering cleanup : Removed old LowerCALL and FORMAL_ARGS helpers, they
aren't used anyway, they also used to broke compiling when fastcc was specified for a
function, but not anymore.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54316
91177308-0d34-0410-b5e6-
96231b3b80d8
Bruno Cardoso Lopes [Mon, 4 Aug 2008 06:44:31 +0000 (06:44 +0000)]
Handle i32->f32 bitconvert results.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54315
91177308-0d34-0410-b5e6-
96231b3b80d8
Andrew Lenharth [Sun, 3 Aug 2008 20:17:34 +0000 (20:17 +0000)]
Add atomic sub for other sizes
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54314
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sun, 3 Aug 2008 18:16:14 +0000 (18:16 +0000)]
Emit saveri with the correct operand order, patch by Richard Pennington!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54313
91177308-0d34-0410-b5e6-
96231b3b80d8
Bruno Cardoso Lopes [Sun, 3 Aug 2008 15:37:43 +0000 (15:37 +0000)]
Fix PR2615
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54312
91177308-0d34-0410-b5e6-
96231b3b80d8
Bruno Cardoso Lopes [Sat, 2 Aug 2008 19:42:36 +0000 (19:42 +0000)]
Improved asm inline for hi,lo results
Added hi,lo registers to be used,def implicitly. This provides better handle of
instructions which use hi/lo.
Fixes a small BranchAnalysis bug
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54274
91177308-0d34-0410-b5e6-
96231b3b80d8
Bruno Cardoso Lopes [Sat, 2 Aug 2008 19:37:33 +0000 (19:37 +0000)]
Apply the same pattern used in 'and' lowering for 'or'
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54273
91177308-0d34-0410-b5e6-
96231b3b80d8
Duncan Sands [Fri, 1 Aug 2008 12:23:49 +0000 (12:23 +0000)]
Fix comment typos.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54266
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Fri, 1 Aug 2008 05:50:13 +0000 (05:50 +0000)]
Removed unused parameters.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54262
91177308-0d34-0410-b5e6-
96231b3b80d8
Dale Johannesen [Thu, 31 Jul 2008 20:16:33 +0000 (20:16 +0000)]
Make sse2 explicit, for non-x86 hosts.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54251
91177308-0d34-0410-b5e6-
96231b3b80d8
Bruno Cardoso Lopes [Thu, 31 Jul 2008 18:50:54 +0000 (18:50 +0000)]
Expand fcopysign
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54250
91177308-0d34-0410-b5e6-
96231b3b80d8
Bruno Cardoso Lopes [Thu, 31 Jul 2008 18:31:28 +0000 (18:31 +0000)]
Handle more SELECT corner cases considering legalize types, probabily wont work with
the default legalizer.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54249
91177308-0d34-0410-b5e6-
96231b3b80d8
Dale Johannesen [Thu, 31 Jul 2008 18:13:12 +0000 (18:13 +0000)]
Add a flag to disable jump table generation (all
switches use the binary search algorithm) for
environments that don't support it. PPC64 JIT
is such an environment; turn the flag on for that.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54248
91177308-0d34-0410-b5e6-
96231b3b80d8