Commit Graph

18696 Commits

Author SHA1 Message Date
Chris Lattner
a5ae15ecb7 silence some annoying gcc 4.3 warnings
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36680 91177308-0d34-0410-b5e6-96231b3b80d8
2007-05-03 18:15:36 +00:00
Chris Lattner
75c7d2bd55 Allow i/s to match (gv+c). This fixes CodeGen/PowerPC/2007-05-03-InlineAsm-S-Constraint.ll
and PR1382


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36672 91177308-0d34-0410-b5e6-96231b3b80d8
2007-05-03 16:54:34 +00:00
Chris Lattner
dc43a88b81 Fix two classes of bugs:
1. x86 backend rejected (&gv+c) for the 'i' constraint when in static mode.
  2. the matcher didn't correctly reject and accept some global addresses.
     the right predicate is GVRequiresExtraLoad, not "relomodel = pic".


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36670 91177308-0d34-0410-b5e6-96231b3b80d8
2007-05-03 16:52:29 +00:00
Chris Lattner
388488d604 add support for printing offset from global
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36669 91177308-0d34-0410-b5e6-96231b3b80d8
2007-05-03 16:42:23 +00:00
Chris Lattner
5f696035e5 revert accidental commit
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36668 91177308-0d34-0410-b5e6-96231b3b80d8
2007-05-03 16:40:25 +00:00
Chris Lattner
4105a9fec0 add support for printing offset of global
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36667 91177308-0d34-0410-b5e6-96231b3b80d8
2007-05-03 16:39:48 +00:00
Dan Gohman
6f858e250b Sets the section names for fixed-size constants and use the mergeable
flag for ELF on x86 so that duplicate constants can be eliminated by
the linker. This matches what GCC does with its -fmerge-constants
option, which is enabled at most -O levels.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36666 91177308-0d34-0410-b5e6-96231b3b80d8
2007-05-03 16:38:57 +00:00
Chris Lattner
72623366c4 revert reid's patch to fix these failures:
test/CodeGen/CBackend/2007-01-08-ParamAttr-ICmp.ll for PR1099 [DEJAGNU]
Applications/SPASS/SPASS [CBE]
Regression/C/2004-03-15-IndirectGoto [CBE]


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36664 91177308-0d34-0410-b5e6-96231b3b80d8
2007-05-03 02:57:13 +00:00
Evan Cheng
0b0a9a90a4 Typo. It's checking if V is multiple of 4, not multiple of 3. :-)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36663 91177308-0d34-0410-b5e6-96231b3b80d8
2007-05-03 02:00:18 +00:00
Devang Patel
1997473cf7 Drop 'const'
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36662 91177308-0d34-0410-b5e6-96231b3b80d8
2007-05-03 01:11:54 +00:00
Chris Lattner
72939126d4 match a reassociated form of fnmul. This implements CodeGen/ARM/fnmul.ll
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36660 91177308-0d34-0410-b5e6-96231b3b80d8
2007-05-03 00:32:00 +00:00
Chris Lattner
a7ad3d1ed3 expose HonorSignDependentRoundingFPMathOption to .td files
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36658 91177308-0d34-0410-b5e6-96231b3b80d8
2007-05-03 00:27:11 +00:00
Chris Lattner
aa4f1e164b Add a new option.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36657 91177308-0d34-0410-b5e6-96231b3b80d8
2007-05-03 00:16:07 +00:00
Bill Wendling
ddd35321fb Non-algorithmic change. Moved definitions around into separate sections
for SSE1, SSE2, SSE3, and SSSE3.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36656 91177308-0d34-0410-b5e6-96231b3b80d8
2007-05-02 23:11:52 +00:00
Anton Korobeynikov
6ad8256d76 Properly set arguments bitwidth of EHSELECT node
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36654 91177308-0d34-0410-b5e6-96231b3b80d8
2007-05-02 22:15:48 +00:00
Bill Wendling
4b693b01fb Update.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36653 91177308-0d34-0410-b5e6-96231b3b80d8
2007-05-02 21:42:20 +00:00
Devang Patel
3e15bf33e0 Use 'static const char' instead of 'static const int'.
Due to darwin gcc bug, one version of darwin linker coalesces
static const int, which defauts PassID based pass identification.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36652 91177308-0d34-0410-b5e6-96231b3b80d8
2007-05-02 21:39:20 +00:00
Devang Patel
eae540a037 Re-install patch to enable use of PassID.
I am preparing another patch to address the failure that prompted
Chris to revert this patch earlier.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36649 91177308-0d34-0410-b5e6-96231b3b80d8
2007-05-02 20:38:25 +00:00
Lauro Ramos Venancio
c718288f49 Fix build error.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36648 91177308-0d34-0410-b5e6-96231b3b80d8
2007-05-02 20:37:47 +00:00
Anton Korobeynikov
ce3b46552a Emit correct register move information in eh frames for X86. This allows Shootout-C++/except to pass on x86/linux
with non-llvm-compiled (e.g. "native") unwind runtime.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36647 91177308-0d34-0410-b5e6-96231b3b80d8
2007-05-02 19:53:33 +00:00
Anton Korobeynikov
038082d966 Emit correct DWARF reg # for RA (return address) register
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36646 91177308-0d34-0410-b5e6-96231b3b80d8
2007-05-02 08:46:03 +00:00
Chris Lattner
f4c8e52433 add reader logic for terminator instrs.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36642 91177308-0d34-0410-b5e6-96231b3b80d8
2007-05-02 05:46:45 +00:00
Chris Lattner
01ff65fb39 add reader support for a bunch of new instructions
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36641 91177308-0d34-0410-b5e6-96231b3b80d8
2007-05-02 05:16:49 +00:00
Chris Lattner
231cbcb35b read a few instructions, fix some bugs. This is enough to be able to round
trip function bodies like this:

define <2 x i64> @foo(<2 x i64> %x, <2 x i64> %y) {
        %tmp4 = bitcast <2 x i64> %y to <8 x i16>               ; <<8 x i16>> [#uses=1]
        %tmp5 = bitcast <2 x i64> %x to <8 x i16>               ; <<8 x i16>> [#uses=1]
        %tmp = add <8 x i16> %tmp5, %tmp4               ; <<8 x i16>> [#uses=1]
        %tmp6 = bitcast <8 x i16> %tmp to <2 x i64>             ; <<2 x i64>> [#uses=1]
        ret <2 x i64> %tmp6
}


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36640 91177308-0d34-0410-b5e6-96231b3b80d8
2007-05-02 04:27:25 +00:00
Chris Lattner
f639875cd7 use the correct code for binop instrs
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36639 91177308-0d34-0410-b5e6-96231b3b80d8
2007-05-02 04:26:36 +00:00
Chris Lattner
80d692be2e revert enough of devang's recent patches to get the tree basically working again
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36638 91177308-0d34-0410-b5e6-96231b3b80d8
2007-05-02 04:25:31 +00:00
Chris Lattner
8fa8a68c21 disable this assertion as a hack to get the build more unbroken :(
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36637 91177308-0d34-0410-b5e6-96231b3b80d8
2007-05-02 04:01:44 +00:00
Reid Spencer
cee7ba389e Make sign extension work correctly for unusual bit widths.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36635 91177308-0d34-0410-b5e6-96231b3b80d8
2007-05-02 02:17:41 +00:00
Dale Johannesen
67cf561b7f Add some support for (Darwin) code-generating directives in getInlineAsmLength.
Support is incomplete, but more accurate than gcc's.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36634 91177308-0d34-0410-b5e6-96231b3b80d8
2007-05-02 01:02:40 +00:00
Anton Korobeynikov
79dda2b048 Fix couple of bugs connected with eh info:
1. Correct output offsets on Linux
2. Fix "style" of personality function. It shouldn't be indirect.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36633 91177308-0d34-0410-b5e6-96231b3b80d8
2007-05-01 22:23:12 +00:00
Devang Patel
794fd75c67 Do not use typeinfo to identify pass in pass manager.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36632 91177308-0d34-0410-b5e6-96231b3b80d8
2007-05-01 21:15:47 +00:00
Evan Cheng
1b20168433 Doh. PC displacement is between the constantpool and the add instruction.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36630 91177308-0d34-0410-b5e6-96231b3b80d8
2007-05-01 20:27:19 +00:00
Anton Korobeynikov
edb4a6bd76 Use correct PC symbol
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36628 91177308-0d34-0410-b5e6-96231b3b80d8
2007-05-01 10:19:31 +00:00
Anton Korobeynikov
71144d8428 Adjust correct EH-related sections
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36627 91177308-0d34-0410-b5e6-96231b3b80d8
2007-05-01 10:16:06 +00:00
Evan Cheng
97de913821 eliminateFrameIndex() change.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36626 91177308-0d34-0410-b5e6-96231b3b80d8
2007-05-01 09:13:03 +00:00
Evan Cheng
8e33473321 If call frame is not part of stack frame and no dynamic alloc, eliminateFrameIndex() must adjust SP offset with size of call frames.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36625 91177308-0d34-0410-b5e6-96231b3b80d8
2007-05-01 09:01:42 +00:00
Evan Cheng
498f55989a Forgot about chain result; also UNDEF cannot have multiple values.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36622 91177308-0d34-0410-b5e6-96231b3b80d8
2007-05-01 08:53:39 +00:00
Chris Lattner
60ce9b5a01 fix build with non-buggy compilers
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36621 91177308-0d34-0410-b5e6-96231b3b80d8
2007-05-01 07:03:37 +00:00
Chris Lattner
a7c49aac98 handle function-level forward references, read binops.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36620 91177308-0d34-0410-b5e6-96231b3b80d8
2007-05-01 07:01:57 +00:00
Nate Begeman
7bf1c272ab llvm bug #1350, parts 1, 2, and 3.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36618 91177308-0d34-0410-b5e6-96231b3b80d8
2007-05-01 05:57:02 +00:00
Chris Lattner
980e5aad4c implement materializeModule, force deallocation of vector memory when we
are done with them, start implementing ParseFunctionBody


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36617 91177308-0d34-0410-b5e6-96231b3b80d8
2007-05-01 05:52:21 +00:00
Chris Lattner
866971474c The stream to read from is now an ivar
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36615 91177308-0d34-0410-b5e6-96231b3b80d8
2007-05-01 05:01:34 +00:00
Chris Lattner
48f848716e implement scafolding for lazy deserialization of function bodies
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36614 91177308-0d34-0410-b5e6-96231b3b80d8
2007-05-01 04:59:48 +00:00
Chris Lattner
be1f993f2d write the symbol table for function bodies
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36610 91177308-0d34-0410-b5e6-96231b3b80d8
2007-05-01 02:14:57 +00:00
Chris Lattner
d309c75b7d encode all of the instructions.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36609 91177308-0d34-0410-b5e6-96231b3b80d8
2007-05-01 02:13:26 +00:00
Evan Cheng
5c3885ce8e Under normal circumstances, when a frame pointer is not required, we reserve
argument space for call sites in the function immediately on entry to the
current function. This eliminates the need for add/sub sp brackets around call
sites. However, this is not always a good idea. If the "call frame" is large and
the target load / store instructions have small immediate field to encode sp
offset, this can cause poor codegen. In the worst case, this can make it
impossible to scavenge a register if the reserved spill slot is pushed too far
apart from sp / fp.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36607 91177308-0d34-0410-b5e6-96231b3b80d8
2007-05-01 00:52:08 +00:00
Evan Cheng
45a7ca9b23 * Only turn a load to UNDEF if all of its outputs have no uses (indexed loads
produce two results.)
* Do not touch volatile loads.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36604 91177308-0d34-0410-b5e6-96231b3b80d8
2007-05-01 00:38:21 +00:00
Chris Lattner
77edc4b1b0 Fix PR1228 and CodeGen/Generic/2007-04-30-LandingPadBranchFolding.ll
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36602 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-30 23:35:00 +00:00
Chris Lattner
c11ce86943 print isLandingPad() for MBBs
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36600 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-30 23:12:53 +00:00
Chris Lattner
e7cf56aeee Continue refactoring inline asm code. If there is an earlyclobber output
register, preallocate all input registers and the early clobbered output.

This fixes PR1357 and CodeGen/PowerPC/2007-04-30-InlineAsmEarlyClobber.ll


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36599 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-30 21:11:17 +00:00