Commit Graph

32152 Commits

Author SHA1 Message Date
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
Devang Patel
e50fb9ac17 Update doc to reflect changes I am about to install to fix PR 888.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36631 91177308-0d34-0410-b5e6-96231b3b80d8
2007-05-01 20:55:38 +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
Duncan Sands
ecf05ca83e Test handling of TRY_CATCH_EXPRs for which the handler is a sequence of
ordinary statements, rather than a list of CATCH_EXPRs or an EH_FILTER_EXPR.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36629 91177308-0d34-0410-b5e6-96231b3b80d8
2007-05-01 18:49:30 +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
a09f0d4ab7 Pass call frame setup SP adjustment along to eliminateFrameIndex().
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36624 91177308-0d34-0410-b5e6-96231b3b80d8
2007-05-01 08:59:18 +00:00
Evan Cheng
18b111bffe Add SPAdj parameter to account for call frame setup SP adjustment.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36623 91177308-0d34-0410-b5e6-96231b3b80d8
2007-05-01 08:58:27 +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
6f7c8ffd9a A bit of feedback from Chris that I missed; error rather than asserting.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36619 91177308-0d34-0410-b5e6-96231b3b80d8
2007-05-01 06:08:36 +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
2bbb703e4f several bitfixes to JumpToBit
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36616 91177308-0d34-0410-b5e6-96231b3b80d8
2007-05-01 05:51:32 +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
90a5c7dbc1 add JumpToBit, an explicit init method, and a default ctor.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36613 91177308-0d34-0410-b5e6-96231b3b80d8
2007-05-01 04:59:06 +00:00
Reid Spencer
9dd446c561 Split target dependent test portions to target-specific directories.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36612 91177308-0d34-0410-b5e6-96231b3b80d8
2007-05-01 02:56:15 +00:00
Chris Lattner
8f92668f53 add phi
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36611 91177308-0d34-0410-b5e6-96231b3b80d8
2007-05-01 02:43:46 +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
Chris Lattner
10d4c586ed add missing opcode.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36608 91177308-0d34-0410-b5e6-96231b3b80d8
2007-05-01 02:12:05 +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
14f1dd120f Added hook hasReservedCallFrame(). It returns true if the call frame is
included as part of the stack frame.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36606 91177308-0d34-0410-b5e6-96231b3b80d8
2007-05-01 00:47:46 +00:00
Evan Cheng
43d44f036c Test a dag combiner crasher.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36605 91177308-0d34-0410-b5e6-96231b3b80d8
2007-05-01 00:40:38 +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
Christopher Lamb
5443779d5a Implement review feedback.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36603 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-30 23:54:10 +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
045a9278b8 testcase for PR1228
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36601 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-30 23:34:46 +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
Chris Lattner
27679be2c0 testcase for PR1357
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36598 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-30 21:10:13 +00:00
Christopher Lamb
99eaef9b06 Header file for ELF relocations.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36597 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-30 20:41:08 +00:00
Anton Korobeynikov
bd4e080a16 Fix comment
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36596 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-30 19:14:56 +00:00
Evan Cheng
e47e75b461 Updates.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36594 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-30 18:42:09 +00:00
Chris Lattner
bf996f1d5e refactor GetRegistersForValue to take OpInfo as an argument instead of various
pieces of it.  No functionality change.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36592 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-30 17:29:31 +00:00
Chris Lattner
3ff90dc1c8 refactor some code, no functionality change
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36590 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-30 17:16:27 +00:00
Chris Lattner
1f6f4c7346 Clean up multi-line asam string printing. Instead of printing:
# InlineAsm Start
        subfc r3,r5,r4
                subfze r4,r3
        # InlineAsm End

print:

        # InlineAsm Start
        subfc r3,r5,r4
        subfze r4,r3
        # InlineAsm End


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36589 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-30 17:00:18 +00:00
Anton Korobeynikov
bb1f97cf87 Fix typo. Interesting, but old variant worked too :)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36588 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-30 10:28:40 +00:00
Reid Spencer
4274e40514 For PR1370:
Rearrange some tests so that if PowerPC is not being built we don't try to
run PowerPC specific tests.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36587 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-30 05:11:58 +00:00
Dale Johannesen
9118dbc7bd Remove item: thumb padding in constant islands
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36586 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-30 00:32:06 +00:00
Dale Johannesen
23c968478e remove unused variable
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36585 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-30 00:30:48 +00:00
Reid Spencer
c9a83e4f19 If an archive is not recognized as an LLVM bytecode archive then declare
that it is native so that the linker will pass it on downstream. This avoids
a problem where the native link line fails because there is both a .so and
a .a file. The .a file gets processed as bytecode and then dropped from the
command line.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36584 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-30 00:29:39 +00:00
Lauro Ramos Venancio
0a1817392d Enable protected visibility on ARM.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36583 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-30 00:23:51 +00:00
Reid Spencer
126b1b8683 Dependent libraries could be native too.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36582 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-30 00:00:10 +00:00