Dan Gohman [Mon, 25 Feb 2008 21:57:04 +0000 (21:57 +0000)]
Remove the hack that turned an {S,U}MUL_LOHI with an unused high
result into a MUL late in the X86 codegen process. ISD::MUL is
once again Legal on X86, so this is no longer needed. And, the
hack was suboptimal; see PR1874 for details.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47567
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Mon, 25 Feb 2008 21:39:34 +0000 (21:39 +0000)]
Make some static variables const.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47566
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 25 Feb 2008 21:28:46 +0000 (21:28 +0000)]
add an assertion to catch a null PATypeHolder, patch by Erick Tryzelaar
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47563
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Mon, 25 Feb 2008 21:11:39 +0000 (21:11 +0000)]
Convert MaskedValueIsZero and all its users to use APInt. Also add
a SignBitIsZero function to simplify a common use case.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47561
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 25 Feb 2008 19:31:21 +0000 (19:31 +0000)]
add LSBaseSDNode::getOffset at Dan's request.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47558
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Mon, 25 Feb 2008 19:24:01 +0000 (19:24 +0000)]
All remat'ed loads cannot be folded into two-address code. Not just argument loads. This change doesn't really have any impact on codegen.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47557
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 25 Feb 2008 19:21:38 +0000 (19:21 +0000)]
prune #includes, fit in 80 cols.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47556
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 25 Feb 2008 19:20:57 +0000 (19:20 +0000)]
make this self contained.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47555
91177308-0d34-0410-b5e6-
96231b3b80d8
Dale Johannesen [Mon, 25 Feb 2008 19:20:14 +0000 (19:20 +0000)]
Expand removal of MMX memory copies to allow 1 level
of TokenFactor underneath chain (seems to be enough)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47554
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Mon, 25 Feb 2008 19:08:02 +0000 (19:08 +0000)]
Add a new method to SDNode/SDOperand named getValueSizeInBits
that combines getValueType and MVT::getSizeInBits, since this
occurrs frequently.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47552
91177308-0d34-0410-b5e6-
96231b3b80d8
Duncan Sands [Mon, 25 Feb 2008 16:21:21 +0000 (16:21 +0000)]
In debug builds check that the key property holds: all
result and operand types are legal.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47546
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Mon, 25 Feb 2008 08:50:41 +0000 (08:50 +0000)]
Correctly determine whether a argument load can be folded into its uses.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47545
91177308-0d34-0410-b5e6-
96231b3b80d8
Owen Anderson [Mon, 25 Feb 2008 04:08:09 +0000 (04:08 +0000)]
Fix an issue where GVN was performing the return slot optimization when it was
not safe. This is fixed by more aggressively checking that the return slot is
not used elsewhere in the function.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47544
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Mon, 25 Feb 2008 03:57:32 +0000 (03:57 +0000)]
Temporarily reverting 46959.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47542
91177308-0d34-0410-b5e6-
96231b3b80d8
Owen Anderson [Mon, 25 Feb 2008 00:40:41 +0000 (00:40 +0000)]
Fix an issue where GVN would try to use an instruction before its definition when performing return slot optimization.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47541
91177308-0d34-0410-b5e6-
96231b3b80d8
Duncan Sands [Sun, 24 Feb 2008 07:36:03 +0000 (07:36 +0000)]
Add support to LegalizeTypes for building legal vectors
out of illegal elements (BUILD_VECTOR). Uses and beefs
up BUILD_PAIR, though it didn't really have to. Like
most of LegalizeTypes, does not support soft-float.
This cures all "make check" vector building failures.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47537
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Sun, 24 Feb 2008 00:56:13 +0000 (00:56 +0000)]
Some platforms use the same name for 32-bit and 64-bit registers (like
%r3 on PPC) in their ASM files. However, it's hard for humans to read
during debugging. Adding a new field to the register data that lets you
specify a different name to be printed than the one that goes into the
ASM file -- %x3 instead of %r3, for instance.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47534
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Sat, 23 Feb 2008 19:32:32 +0000 (19:32 +0000)]
Backing out r47521 for now. This has broken a number of tests.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47533
91177308-0d34-0410-b5e6-
96231b3b80d8
Scott Michel [Sat, 23 Feb 2008 18:41:37 +0000 (18:41 +0000)]
Merge current work back to tree to minimize diffs and drift. Major highlights
for CellSPU modifications:
- SPUInstrInfo.td refactoring: "multiclass" really is _your_ friend.
- Other improvements based on refactoring effort in SPUISelLowering.cpp,
esp. in SPUISelLowering::PerformDAGCombine(), where zero amount shifts and
rotates are now eliminiated, other scalar-to-vector-to-scalar silliness
is also eliminated.
- 64-bit operations are being implemented, _muldi3.c gcc runtime now
compiles and generates the right code. More work still needs to be done.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47532
91177308-0d34-0410-b5e6-
96231b3b80d8
Zhou Sheng [Sat, 23 Feb 2008 10:59:51 +0000 (10:59 +0000)]
Testcase for Revision 47478.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47531
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Sat, 23 Feb 2008 03:38:34 +0000 (03:38 +0000)]
Rematerialization logic was overly conservative when it comes to loads from fixed stack slots.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47529
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Sat, 23 Feb 2008 02:57:25 +0000 (02:57 +0000)]
Update test.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47527
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Sat, 23 Feb 2008 02:14:42 +0000 (02:14 +0000)]
If remating a machine instr with virtual register operand, make sure the vr is avaliable at all uses regardless of whether it would be folded.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47526
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Sat, 23 Feb 2008 02:08:30 +0000 (02:08 +0000)]
Remat of pic loads are now on by default.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47525
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Sat, 23 Feb 2008 02:07:42 +0000 (02:07 +0000)]
Turning on remat of pic loads.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47524
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Sat, 23 Feb 2008 01:55:25 +0000 (01:55 +0000)]
Fix a bug that caused opt and other tools to silently ignore
invalid command-line options.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47523
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Sat, 23 Feb 2008 01:47:44 +0000 (01:47 +0000)]
No need recognize load from a fixed argument slot as re-materializable. LiveIntervalAnalysis already handles it as a special case.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47522
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Sat, 23 Feb 2008 01:44:55 +0000 (01:44 +0000)]
Properly read and write bitcodes for multiple return values.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47521
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Sat, 23 Feb 2008 01:44:27 +0000 (01:44 +0000)]
Recognize loads of arguments as re-materializable first. Therefore if isReallyTriviallyReMaterializable() returns true it doesn't confuse it as a "normal" re-materializable instruction.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47520
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Sat, 23 Feb 2008 01:17:37 +0000 (01:17 +0000)]
Regenerate.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47519
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Sat, 23 Feb 2008 01:17:17 +0000 (01:17 +0000)]
Use isa check instead of getTypeID() check.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47518
91177308-0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Sat, 23 Feb 2008 01:11:40 +0000 (01:11 +0000)]
Fixed buffer overflow reported by Argiris Kirtzidis.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47517
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Sat, 23 Feb 2008 01:11:02 +0000 (01:11 +0000)]
Remove unnecessary "inline" keywords.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47516
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Sat, 23 Feb 2008 01:04:26 +0000 (01:04 +0000)]
print getresult operand and its type directly.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47514
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Sat, 23 Feb 2008 00:56:14 +0000 (00:56 +0000)]
Really. Why doesn't every arch support MMX?
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47513
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Sat, 23 Feb 2008 00:47:00 +0000 (00:47 +0000)]
Use dyn_cast instead of isa + cast.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47511
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Sat, 23 Feb 2008 00:46:11 +0000 (00:46 +0000)]
Forgot this.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47510
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Sat, 23 Feb 2008 00:38:56 +0000 (00:38 +0000)]
Regenerate
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47509
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Sat, 23 Feb 2008 00:35:18 +0000 (00:35 +0000)]
To support multiple return values, now ret instruction supports multiple operands instead of one aggregate operand.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47508
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Sat, 23 Feb 2008 00:33:04 +0000 (00:33 +0000)]
Fix spill weight updating bug.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47507
91177308-0d34-0410-b5e6-
96231b3b80d8
Dale Johannesen [Fri, 22 Feb 2008 22:17:59 +0000 (22:17 +0000)]
Split ParameterAttributes.h, putting the complicated
stuff into ParamAttrsList.h. Per feedback from
ParamAttrs changes.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47504
91177308-0d34-0410-b5e6-
96231b3b80d8
Gordon Henriksen [Fri, 22 Feb 2008 21:55:51 +0000 (21:55 +0000)]
Improving wording.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47503
91177308-0d34-0410-b5e6-
96231b3b80d8
Gordon Henriksen [Fri, 22 Feb 2008 20:58:29 +0000 (20:58 +0000)]
Adding a note about IR generation to the LLVM FAQ.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47502
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Fri, 22 Feb 2008 20:38:49 +0000 (20:38 +0000)]
Test case for PR2082.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47501
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Fri, 22 Feb 2008 20:31:32 +0000 (20:31 +0000)]
Same isPhysRegAvailable bug as local register allocator.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47500
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Fri, 22 Feb 2008 20:30:53 +0000 (20:30 +0000)]
Really really bad local register allocator bug. On X86, it was never using ESI, EDI, and EBP because of a bug in RALocal::isPhysRegAvailable(). For example, when
it checks if ESI is available, it then looks at registers aliases to ESI. SIL is marked -2 (not allocatable) but isPhysRegAvailable() incorrectly assumes it is in use and returns false for ESI.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47499
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Fri, 22 Feb 2008 19:57:06 +0000 (19:57 +0000)]
Add debugging printfs.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47496
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Fri, 22 Feb 2008 19:31:30 +0000 (19:31 +0000)]
Regenerate
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47495
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Fri, 22 Feb 2008 19:31:15 +0000 (19:31 +0000)]
Use SymbolicValueRef to parse getresult operand
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47494
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Fri, 22 Feb 2008 19:25:04 +0000 (19:25 +0000)]
Remove an invalid assertion now that there are implicit virtual register operands.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47493
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Fri, 22 Feb 2008 19:22:06 +0000 (19:22 +0000)]
Make sure reload of implicit uses are issued before remat's.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47492
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Fri, 22 Feb 2008 18:39:29 +0000 (18:39 +0000)]
Add StripDeadPrototypes pass.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47488
91177308-0d34-0410-b5e6-
96231b3b80d8
Dale Johannesen [Fri, 22 Feb 2008 17:50:51 +0000 (17:50 +0000)]
Generated files for 47484.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47485
91177308-0d34-0410-b5e6-
96231b3b80d8
Dale Johannesen [Fri, 22 Feb 2008 17:49:45 +0000 (17:49 +0000)]
Pass alignment on ByVal parameters, from FE, all
the way through. It is now used for codegen.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47484
91177308-0d34-0410-b5e6-
96231b3b80d8
Dale Johannesen [Fri, 22 Feb 2008 17:47:28 +0000 (17:47 +0000)]
MMX vectors are passed 4-byte aligned.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47483
91177308-0d34-0410-b5e6-
96231b3b80d8
Anton Korobeynikov [Fri, 22 Feb 2008 17:26:05 +0000 (17:26 +0000)]
Add smart refcounting pointer class to ADT back (known before as IntrusiveSPtr.h).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47482
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 22 Feb 2008 17:09:39 +0000 (17:09 +0000)]
fix some bugs in tutorial, patch by Erick Tryzelaar
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47481
91177308-0d34-0410-b5e6-
96231b3b80d8
Anton Korobeynikov [Fri, 22 Feb 2008 10:11:21 +0000 (10:11 +0000)]
Unbreak build for VC2008. Patch by Argiris Kirtzidis!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47480
91177308-0d34-0410-b5e6-
96231b3b80d8
Anton Korobeynikov [Fri, 22 Feb 2008 10:08:31 +0000 (10:08 +0000)]
Provide __main hooks for cygwin & mingw32
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47479
91177308-0d34-0410-b5e6-
96231b3b80d8
Zhou Sheng [Fri, 22 Feb 2008 10:00:35 +0000 (10:00 +0000)]
Fixed a typo.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47478
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Fri, 22 Feb 2008 09:25:47 +0000 (09:25 +0000)]
Allow re-materialization of pic load (controlled by -remat-pic-load for now).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47476
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Fri, 22 Feb 2008 09:24:50 +0000 (09:24 +0000)]
Enable re-materialization of instructions which have virtual register operands if
the definition of the operand also reaches its uses.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47475
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 22 Feb 2008 05:18:04 +0000 (05:18 +0000)]
copy mmx values from/to memory with GPRs on x86-32
instead of with mmx registers. This horribleness is apparently
done by gcc to avoid having to insert emms in places that really
should have it. This is the second half of rdar://
5741668.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47474
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Fri, 22 Feb 2008 03:10:23 +0000 (03:10 +0000)]
Print getresult instruction properly.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47473
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Fri, 22 Feb 2008 02:50:49 +0000 (02:50 +0000)]
Print ret instruction that returns aggregates.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47472
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Fri, 22 Feb 2008 02:49:49 +0000 (02:49 +0000)]
Read and write getresult.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47471
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 22 Feb 2008 02:09:43 +0000 (02:09 +0000)]
Start using GPR's to copy around mmx value instead of mmx regs.
GCC apparently does this, and code depends on not having to do
emms when this happens. This is x86-64 only so far, second half
should handle x86-32.
rdar://
5741668
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47470
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 22 Feb 2008 01:54:35 +0000 (01:54 +0000)]
minor cleanups to LSBaseSDNode.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47469
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Fri, 22 Feb 2008 01:48:00 +0000 (01:48 +0000)]
Fix compiler warning.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47468
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Fri, 22 Feb 2008 01:12:31 +0000 (01:12 +0000)]
Fix a regression in 403.gcc and 186.crafty introduced in 47383. To test
that a value is >= 32, check that all of the high bits are zero, not
just one or more.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47467
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Thu, 21 Feb 2008 23:02:20 +0000 (23:02 +0000)]
print getresult instruction.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47461
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Thu, 21 Feb 2008 22:24:17 +0000 (22:24 +0000)]
Use isa<> instead of getTypeID() to check StructType.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47460
91177308-0d34-0410-b5e6-
96231b3b80d8
Eli Friedman [Thu, 21 Feb 2008 21:16:49 +0000 (21:16 +0000)]
A few minor updates, removing implemented stuff and adding a couple of
new things.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47458
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 21 Feb 2008 20:54:31 +0000 (20:54 +0000)]
Make the clobber analysis a bit more smart: we only are careful about
early clobbers if the clobber list contains a *register* not some thing
like {memory}, {dirflag} etc.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47457
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 21 Feb 2008 19:43:13 +0000 (19:43 +0000)]
Treat clobber operands like early clobbers: if we have
any, we force sdisel to do all regalloc for an asm. This
leads to gross but correct codegen.
This fixes the rest of PR2078.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47454
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Thu, 21 Feb 2008 19:35:27 +0000 (19:35 +0000)]
Clear PhysRegPartUse for the sub register as well.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47453
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Thu, 21 Feb 2008 19:33:53 +0000 (19:33 +0000)]
Adjust the MaxAlignment for the special register scavenging spill slot.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47452
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Thu, 21 Feb 2008 19:20:21 +0000 (19:20 +0000)]
Help testing.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47448
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Thu, 21 Feb 2008 17:33:24 +0000 (17:33 +0000)]
Change a C-style cast to const_cast, to avoid a -Wcast-qual warning.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47437
91177308-0d34-0410-b5e6-
96231b3b80d8
Andrew Lenharth [Thu, 21 Feb 2008 16:11:38 +0000 (16:11 +0000)]
Better names as per Evan's request
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47435
91177308-0d34-0410-b5e6-
96231b3b80d8
Nick Lewycky [Thu, 21 Feb 2008 09:14:53 +0000 (09:14 +0000)]
Simplify this code, no functionality change.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47434
91177308-0d34-0410-b5e6-
96231b3b80d8
Nick Lewycky [Thu, 21 Feb 2008 08:34:02 +0000 (08:34 +0000)]
GlobalValues are Constants, remove redundant code. Also fix typo in a comment.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47433
91177308-0d34-0410-b5e6-
96231b3b80d8
Tanya Lattner [Thu, 21 Feb 2008 07:42:26 +0000 (07:42 +0000)]
Remove llvm-upgrade and update tests.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47432
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 21 Feb 2008 06:51:29 +0000 (06:51 +0000)]
Dan implemented one multiply issue. Replace it with another. :)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47431
91177308-0d34-0410-b5e6-
96231b3b80d8
Andrew Lenharth [Thu, 21 Feb 2008 06:45:13 +0000 (06:45 +0000)]
Atomic op support. If any gcc test uses __sync builtins, it might start failing on archs that haven't implemented them yet
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47430
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 21 Feb 2008 05:27:19 +0000 (05:27 +0000)]
Add support for matching mem operands. This fixes PR1133, patch by
Eli Friedman. This implements CodeGen/Generic/2008-02-20-MatchingMem.ll.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47428
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 21 Feb 2008 05:27:08 +0000 (05:27 +0000)]
testcase for PR1133
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47427
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 21 Feb 2008 04:55:52 +0000 (04:55 +0000)]
Fix a (harmless) but where vregs were added to the used reg lists for
inline asms.
Fix PR2078 by marking aliases of registers used when a register is
marked used. This prevents EAX from being allocated when AX is listed
in the clobber set for the asm.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47426
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Thu, 21 Feb 2008 02:14:01 +0000 (02:14 +0000)]
Let invoke return aggregate value.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47425
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Thu, 21 Feb 2008 01:54:02 +0000 (01:54 +0000)]
Let function call return aggregate.
Now, we have very first multiple return value testcase!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47424
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Thu, 21 Feb 2008 01:41:25 +0000 (01:41 +0000)]
Add -disable-output option.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47422
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Thu, 21 Feb 2008 00:34:19 +0000 (00:34 +0000)]
Clean up some spilling code using MachineRegisterInfo.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47416
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Wed, 20 Feb 2008 23:10:42 +0000 (23:10 +0000)]
XFAIL for now.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47411
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Wed, 20 Feb 2008 22:51:28 +0000 (22:51 +0000)]
Now functions can return aggregate values.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47409
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Wed, 20 Feb 2008 22:40:23 +0000 (22:40 +0000)]
regenerate.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47408
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Wed, 20 Feb 2008 22:39:45 +0000 (22:39 +0000)]
Parse
ret i32 1, i8 2
another step towards multiple return value support.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47407
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Wed, 20 Feb 2008 22:36:03 +0000 (22:36 +0000)]
What if functions can return aggregate values ?
One small step towards multiple return value support.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47406
91177308-0d34-0410-b5e6-
96231b3b80d8
Dale Johannesen [Wed, 20 Feb 2008 21:15:43 +0000 (21:15 +0000)]
Regenerated files.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47402
91177308-0d34-0410-b5e6-
96231b3b80d8
Dale Johannesen [Wed, 20 Feb 2008 21:15:19 +0000 (21:15 +0000)]
Support alignment within ParamAttrs in the I/O handling.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47401
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Wed, 20 Feb 2008 20:57:32 +0000 (20:57 +0000)]
Poorly named option.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47400
91177308-0d34-0410-b5e6-
96231b3b80d8