oota-llvm.git
17 years agoUnder normal circumstances, when a frame pointer is not required, we reserve
Evan Cheng [Tue, 1 May 2007 00:52:08 +0000 (00:52 +0000)]
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

17 years agoAdded hook hasReservedCallFrame(). It returns true if the call frame is
Evan Cheng [Tue, 1 May 2007 00:47:46 +0000 (00:47 +0000)]
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

17 years agoTest a dag combiner crasher.
Evan Cheng [Tue, 1 May 2007 00:40:38 +0000 (00:40 +0000)]
Test a dag combiner crasher.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36605 91177308-0d34-0410-b5e6-96231b3b80d8

17 years ago* Only turn a load to UNDEF if all of its outputs have no uses (indexed loads
Evan Cheng [Tue, 1 May 2007 00:38:21 +0000 (00:38 +0000)]
* 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

17 years agoImplement review feedback.
Christopher Lamb [Mon, 30 Apr 2007 23:54:10 +0000 (23:54 +0000)]
Implement review feedback.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36603 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoFix PR1228 and CodeGen/Generic/2007-04-30-LandingPadBranchFolding.ll
Chris Lattner [Mon, 30 Apr 2007 23:35:00 +0000 (23:35 +0000)]
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

17 years agotestcase for PR1228
Chris Lattner [Mon, 30 Apr 2007 23:34:46 +0000 (23:34 +0000)]
testcase for PR1228

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36601 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoprint isLandingPad() for MBBs
Chris Lattner [Mon, 30 Apr 2007 23:12:53 +0000 (23:12 +0000)]
print isLandingPad() for MBBs

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36600 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoContinue refactoring inline asm code. If there is an earlyclobber output
Chris Lattner [Mon, 30 Apr 2007 21:11:17 +0000 (21:11 +0000)]
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

17 years agotestcase for PR1357
Chris Lattner [Mon, 30 Apr 2007 21:10:13 +0000 (21:10 +0000)]
testcase for PR1357

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36598 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoHeader file for ELF relocations.
Christopher Lamb [Mon, 30 Apr 2007 20:41:08 +0000 (20:41 +0000)]
Header file for ELF relocations.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36597 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoFix comment
Anton Korobeynikov [Mon, 30 Apr 2007 19:14:56 +0000 (19:14 +0000)]
Fix comment

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36596 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoUpdates.
Evan Cheng [Mon, 30 Apr 2007 18:42:09 +0000 (18:42 +0000)]
Updates.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36594 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agorefactor GetRegistersForValue to take OpInfo as an argument instead of various
Chris Lattner [Mon, 30 Apr 2007 17:29:31 +0000 (17:29 +0000)]
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

17 years agorefactor some code, no functionality change
Chris Lattner [Mon, 30 Apr 2007 17:16:27 +0000 (17:16 +0000)]
refactor some code, no functionality change

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36590 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoClean up multi-line asam string printing. Instead of printing:
Chris Lattner [Mon, 30 Apr 2007 17:00:18 +0000 (17:00 +0000)]
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

17 years agoFix typo. Interesting, but old variant worked too :)
Anton Korobeynikov [Mon, 30 Apr 2007 10:28:40 +0000 (10:28 +0000)]
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

17 years agoFor PR1370:
Reid Spencer [Mon, 30 Apr 2007 05:11:58 +0000 (05:11 +0000)]
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

17 years agoRemove item: thumb padding in constant islands
Dale Johannesen [Mon, 30 Apr 2007 00:32:06 +0000 (00:32 +0000)]
Remove item: thumb padding in constant islands

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36586 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoremove unused variable
Dale Johannesen [Mon, 30 Apr 2007 00:30:48 +0000 (00:30 +0000)]
remove unused variable

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36585 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoIf an archive is not recognized as an LLVM bytecode archive then declare
Reid Spencer [Mon, 30 Apr 2007 00:29:39 +0000 (00:29 +0000)]
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

17 years agoEnable protected visibility on ARM.
Lauro Ramos Venancio [Mon, 30 Apr 2007 00:23:51 +0000 (00:23 +0000)]
Enable protected visibility on ARM.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36583 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoDependent libraries could be native too.
Reid Spencer [Mon, 30 Apr 2007 00:00:10 +0000 (00:00 +0000)]
Dependent libraries could be native too.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36582 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoAugment the verbose output to print out the sub-commands executed.
Reid Spencer [Sun, 29 Apr 2007 23:59:47 +0000 (23:59 +0000)]
Augment the verbose output to print out the sub-commands executed.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36581 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoadd some helpers
Chris Lattner [Sun, 29 Apr 2007 21:49:05 +0000 (21:49 +0000)]
add some helpers

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36580 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoImplement much expanded dumper support. We now print stuff like:
Chris Lattner [Sun, 29 Apr 2007 21:48:19 +0000 (21:48 +0000)]
Implement much expanded dumper support.  We now print stuff like:

<MODULE_BLOCK NumWords=27 BlockCodeSize=3>
  <TYPE_BLOCK NumWords=7 BlockCodeSize=4>
    <NUMENTRY op0=7>
    <POINTER op0=1>
    <FUNCTION op0=0 op1=2 op2=2 op3=2 op4=2>
    <VECTOR op0=2 op1=3>
    <INTEGER op0=64>
    <VECTOR op0=8 op1=5>
    <INTEGER op0=16>
    <VOID>
...

With work, the operands can be pretty printed symbolically.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36579 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoImplement visibility checking during linking. Also implement protected
Anton Korobeynikov [Sun, 29 Apr 2007 20:56:48 +0000 (20:56 +0000)]
Implement visibility checking during linking. Also implement protected
visibility support for bitcode.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36577 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoadd some simple per-block statistics
Chris Lattner [Sun, 29 Apr 2007 20:00:02 +0000 (20:00 +0000)]
add some simple per-block statistics

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36576 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agocompute this value correctly
Chris Lattner [Sun, 29 Apr 2007 19:49:58 +0000 (19:49 +0000)]
compute this value correctly

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36575 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoRewrite of Thumb constant islands handling (exact allowance for padding
Dale Johannesen [Sun, 29 Apr 2007 19:19:30 +0000 (19:19 +0000)]
Rewrite of Thumb constant islands handling (exact allowance for padding
around islands and jump tables).

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36573 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoMake ARM-specific version of getInlineAsmLength
Dale Johannesen [Sun, 29 Apr 2007 19:17:45 +0000 (19:17 +0000)]
Make ARM-specific version of getInlineAsmLength

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36572 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoadd a method
Chris Lattner [Sun, 29 Apr 2007 19:17:32 +0000 (19:17 +0000)]
add a method

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36571 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agonot all targets want to return an i32. What really matters is whether llc accepts...
Chris Lattner [Sun, 29 Apr 2007 18:59:01 +0000 (18:59 +0000)]
not all targets want to return an i32.  What really matters is whether llc accepts the generated code.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36569 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agogeneralize aggregate handling
Chris Lattner [Sun, 29 Apr 2007 18:58:03 +0000 (18:58 +0000)]
generalize aggregate handling

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36568 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoRegenerate
Anton Korobeynikov [Sun, 29 Apr 2007 18:38:24 +0000 (18:38 +0000)]
Regenerate

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36566 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoImplement protected visibility. This partly implements PR1363. Linker
Anton Korobeynikov [Sun, 29 Apr 2007 18:35:00 +0000 (18:35 +0000)]
Implement protected visibility. This partly implements PR1363. Linker
should be taught to deal with protected symbols.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36565 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoImplement review feedback
Anton Korobeynikov [Sun, 29 Apr 2007 18:02:48 +0000 (18:02 +0000)]
Implement review feedback

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36564 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoJeff's fix was fine
Chris Lattner [Sun, 29 Apr 2007 17:44:10 +0000 (17:44 +0000)]
Jeff's fix was fine

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36563 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoadd missing ctor
Chris Lattner [Sun, 29 Apr 2007 17:40:50 +0000 (17:40 +0000)]
add missing ctor

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36562 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoFix MemoryBuffer breakage correctly.
Jeff Cohen [Sun, 29 Apr 2007 14:43:31 +0000 (14:43 +0000)]
Fix MemoryBuffer breakage correctly.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36561 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoUnbreak VC++ build.
Jeff Cohen [Sun, 29 Apr 2007 14:22:14 +0000 (14:22 +0000)]
Unbreak VC++ build.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36560 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoUnbreak build.
Jeff Cohen [Sun, 29 Apr 2007 14:21:44 +0000 (14:21 +0000)]
Unbreak build.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36559 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoUpdated aliases test
Anton Korobeynikov [Sun, 29 Apr 2007 10:34:42 +0000 (10:34 +0000)]
Updated aliases test

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36558 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoImplement support to read an arbitrary bitcode file. Next up, dumping the
Chris Lattner [Sun, 29 Apr 2007 08:31:14 +0000 (08:31 +0000)]
Implement support to read an arbitrary bitcode file.  Next up, dumping the
file symbolically and actually computing statistics.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36557 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agovery early support for analyzing a bitstream. This opens the file, starts
Chris Lattner [Sun, 29 Apr 2007 08:12:22 +0000 (08:12 +0000)]
very early support for analyzing a bitstream.  This opens the file, starts
reading the stream, and detects whether it is LLVM IR or not.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36556 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agomake this file self-contained
Chris Lattner [Sun, 29 Apr 2007 08:05:07 +0000 (08:05 +0000)]
make this file self-contained

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36555 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoSwitch the bitcode reader interface to take a MemoryBuffer instead of knowing
Chris Lattner [Sun, 29 Apr 2007 07:54:31 +0000 (07:54 +0000)]
Switch the bitcode reader interface to take a MemoryBuffer instead of knowing
anything about disk I/O itself.  This greatly simplifies its interface -
eliminating the need for the ReaderWrappers.cpp file.

This adds a new option to llvm-dis (-bitcode) which instructs it to read
the input file as bitcode.  Until/unless the bytecode reader is taught to
read from MemoryBuffer, there is no way to handle stdin reading without it.

I don't plan to switch the bytecode reader over, I'd rather delete it :),
so the option will stay around temporarily.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36554 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoAdd a new memorybuffer class, to unify all the file reading code in the system
Chris Lattner [Sun, 29 Apr 2007 06:58:52 +0000 (06:58 +0000)]
Add a new memorybuffer class, to unify all the file reading code in the system

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36553 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agonew method for creating a path, which does not create a temporary string.
Chris Lattner [Sun, 29 Apr 2007 06:16:32 +0000 (06:16 +0000)]
new method for creating a path, which does not create a temporary string.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36552 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agofit in 80 cols
Chris Lattner [Sun, 29 Apr 2007 05:51:00 +0000 (05:51 +0000)]
fit in 80 cols

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36551 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoFix this to use the right block ID
Chris Lattner [Sun, 29 Apr 2007 05:49:09 +0000 (05:49 +0000)]
Fix this to use the right block ID

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36550 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agomoved Writer.cpp -> BitcodeWriter.cpp to make it more unique in the tree.
Chris Lattner [Sun, 29 Apr 2007 05:31:57 +0000 (05:31 +0000)]
moved Writer.cpp -> BitcodeWriter.cpp to make it more unique in the tree.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36549 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoMinor corrections.
Jeff Cohen [Sun, 29 Apr 2007 01:07:00 +0000 (01:07 +0000)]
Minor corrections.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36548 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agomemory operands that have a direct operand should have their stores created
Chris Lattner [Sat, 28 Apr 2007 21:12:06 +0000 (21:12 +0000)]
memory operands that have a direct operand should have their stores created
before the copies into physregs are done.  This avoids having flag operands
skip the store, causing cycles in the dag at sched time.  This fixes infinite
loops on these tests:

test/CodeGen/Generic/2007-04-08-MultipleFrameIndices.ll for PR1308
test/CodeGen/PowerPC/2007-01-29-lbrx-asm.ll
test/CodeGen/PowerPC/2007-01-31-InlineAsmAddrMode.ll
test/CodeGen/X86/2006-07-12-InlineAsmQConstraint.ll for PR828

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36547 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoeliminate more redundant constraint type analysis
Chris Lattner [Sat, 28 Apr 2007 21:03:16 +0000 (21:03 +0000)]
eliminate more redundant constraint type analysis

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36546 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agomerge constraint type analysis stuff together.
Chris Lattner [Sat, 28 Apr 2007 21:01:43 +0000 (21:01 +0000)]
merge constraint type analysis stuff together.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36545 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoSignificant refactoring of the inline asm stuff, to support future changes.
Chris Lattner [Sat, 28 Apr 2007 20:49:53 +0000 (20:49 +0000)]
Significant refactoring of the inline asm stuff, to support future changes.
No functionality change.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36544 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoRegenerate.
Reid Spencer [Sat, 28 Apr 2007 16:07:31 +0000 (16:07 +0000)]
Regenerate.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36543 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoRevert the premature portion of the last commit.
Reid Spencer [Sat, 28 Apr 2007 16:06:50 +0000 (16:06 +0000)]
Revert the premature portion of the last commit.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36542 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoThis is not "FIXME" anymore
Anton Korobeynikov [Sat, 28 Apr 2007 14:57:59 +0000 (14:57 +0000)]
This is not "FIXME" anymore

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36541 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoLet Verifier check aliasees
Anton Korobeynikov [Sat, 28 Apr 2007 14:35:41 +0000 (14:35 +0000)]
Let Verifier check aliasees

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36540 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoFix a compilation error (jump to case label).
Reid Spencer [Sat, 28 Apr 2007 14:13:42 +0000 (14:13 +0000)]
Fix a compilation error (jump to case label).

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36539 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoRegenerate
Anton Korobeynikov [Sat, 28 Apr 2007 13:48:45 +0000 (13:48 +0000)]
Regenerate

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36538 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoImplement review feedback. Aliasees can be either GlobalValue's or
Anton Korobeynikov [Sat, 28 Apr 2007 13:45:00 +0000 (13:45 +0000)]
Implement review feedback. Aliasees can be either GlobalValue's or
bitcasts of them.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36537 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agomemory inputs to an inline asm are required to have an address available.
Chris Lattner [Sat, 28 Apr 2007 06:42:38 +0000 (06:42 +0000)]
memory inputs to an inline asm are required to have an address available.
If the operand is not already an indirect operand, spill it to a constant
pool entry or a stack slot.

This fixes PR1356 and CodeGen/X86/2007-04-27-InlineAsm-IntMemInput.ll

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36536 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agonew testcase for PR1356
Chris Lattner [Sat, 28 Apr 2007 06:41:13 +0000 (06:41 +0000)]
new testcase for PR1356

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36535 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoFix CodeGen/Generic/2007-04-27-LargeMemObject.ll and
Chris Lattner [Sat, 28 Apr 2007 06:08:13 +0000 (06:08 +0000)]
Fix CodeGen/Generic/2007-04-27-LargeMemObject.ll and
    CodeGen/Generic/2007-04-27-InlineAsm-X-Dest.ll

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36534 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoensure the operand prints.
Chris Lattner [Sat, 28 Apr 2007 06:07:55 +0000 (06:07 +0000)]
ensure the operand prints.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36533 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agonew testcase
Chris Lattner [Sat, 28 Apr 2007 06:05:59 +0000 (06:05 +0000)]
new testcase

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36532 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoupdate syntax
Chris Lattner [Sat, 28 Apr 2007 06:03:12 +0000 (06:03 +0000)]
update syntax

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36531 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agonot fully implemented yet.
Chris Lattner [Sat, 28 Apr 2007 06:02:13 +0000 (06:02 +0000)]
not fully implemented yet.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36530 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoadd a default parameter
Chris Lattner [Sat, 28 Apr 2007 05:42:38 +0000 (05:42 +0000)]
add a default parameter

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36529 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoadd a way to make this less brittle
Chris Lattner [Sat, 28 Apr 2007 05:38:52 +0000 (05:38 +0000)]
add a way to make this less brittle

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36528 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agofix a bug triggered by 403.gcc
Chris Lattner [Sat, 28 Apr 2007 05:27:36 +0000 (05:27 +0000)]
fix a bug triggered by 403.gcc

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36527 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoupdate for new inline asm syntax
Chris Lattner [Sat, 28 Apr 2007 05:20:26 +0000 (05:20 +0000)]
update for new inline asm syntax

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36526 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoFix several latent bugs in EmitGEPOffset that didn't manifest with its
Chris Lattner [Sat, 28 Apr 2007 04:52:43 +0000 (04:52 +0000)]
Fix several latent bugs in EmitGEPOffset that didn't manifest with its
previous clients.  This fixes MallocBench/gs

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36525 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoFix this to match change to InlineAsm class.
Chris Lattner [Sat, 28 Apr 2007 04:05:59 +0000 (04:05 +0000)]
Fix this to match change to InlineAsm class.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36524 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agouhn zap cvs
Chris Lattner [Sat, 28 Apr 2007 03:50:56 +0000 (03:50 +0000)]
uhn zap cvs

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36523 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agorepresent indirect operands explicitly in inline asm strings.
Chris Lattner [Sat, 28 Apr 2007 01:02:58 +0000 (01:02 +0000)]
represent indirect operands explicitly in inline asm strings.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36522 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoImplement PR1345 and Transforms/InstCombine/bitcast-gep.ll
Chris Lattner [Sat, 28 Apr 2007 00:57:34 +0000 (00:57 +0000)]
Implement PR1345 and Transforms/InstCombine/bitcast-gep.ll

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36521 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agonew testcase
Chris Lattner [Sat, 28 Apr 2007 00:54:45 +0000 (00:54 +0000)]
new testcase

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36520 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agochange per review
Dale Johannesen [Sat, 28 Apr 2007 00:36:37 +0000 (00:36 +0000)]
change per review

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36519 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoPrevent Thumb code from generating ARM instructions
Dale Johannesen [Fri, 27 Apr 2007 22:17:18 +0000 (22:17 +0000)]
Prevent Thumb code from generating ARM instructions

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36518 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agofix the test tls1.
Lauro Ramos Venancio [Fri, 27 Apr 2007 21:23:17 +0000 (21:23 +0000)]
fix the test tls1.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36517 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoadd TLS tests.
Lauro Ramos Venancio [Fri, 27 Apr 2007 21:08:48 +0000 (21:08 +0000)]
add TLS tests.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36516 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoadd a GEP helper function
Chris Lattner [Fri, 27 Apr 2007 20:35:56 +0000 (20:35 +0000)]
add a GEP helper function

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36515 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoadd parenthesis.
Lauro Ramos Venancio [Fri, 27 Apr 2007 20:10:08 +0000 (20:10 +0000)]
add parenthesis.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36514 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoDoh. ARM::LEApcrel is a single instruction MI.
Evan Cheng [Fri, 27 Apr 2007 18:27:13 +0000 (18:27 +0000)]
Doh. ARM::LEApcrel is a single instruction MI.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36513 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoIn Thumb mode, the frame register must be R7.
Lauro Ramos Venancio [Fri, 27 Apr 2007 17:58:03 +0000 (17:58 +0000)]
In Thumb mode, the frame register must be R7.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36512 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agorefactor some code relating to pointer cast xforms, pulling it out of the codepath
Chris Lattner [Fri, 27 Apr 2007 17:44:50 +0000 (17:44 +0000)]
refactor some code relating to pointer cast xforms, pulling it out of the codepath
for unrelated casts.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36511 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoFix incorrect legalization of EHSELECTOR. This fixes
Chris Lattner [Fri, 27 Apr 2007 17:12:52 +0000 (17:12 +0000)]
Fix incorrect legalization of EHSELECTOR.  This fixes
CodeGen/Generic/2007-04-14-EHSelectorCrash.ll and PR1326

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36510 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agomake this testcase harder, to cover PR1326
Chris Lattner [Fri, 27 Apr 2007 17:12:23 +0000 (17:12 +0000)]
make this testcase harder, to cover PR1326

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36509 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoreset errno to zero on entry to the application's main function. This fixes
Chris Lattner [Fri, 27 Apr 2007 17:02:33 +0000 (17:02 +0000)]
reset errno to zero on entry to the application's main function.  This fixes
MultiSource/Applications/minisat in the JIT.

Note that the libsystem stuff should ideally never modify errno.  :(

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36508 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoFix prolific source of 'possible loss of data' warnings.
Jeff Cohen [Fri, 27 Apr 2007 14:43:05 +0000 (14:43 +0000)]
Fix prolific source of 'possible loss of data' warnings.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36507 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoARM TLS: implement "general dynamic", "initial exec" and "local exec" models.
Lauro Ramos Venancio [Fri, 27 Apr 2007 13:54:47 +0000 (13:54 +0000)]
ARM TLS: implement "general dynamic", "initial exec" and "local exec" models.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36506 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoDarwin runtime library does not have these.
Evan Cheng [Fri, 27 Apr 2007 08:15:43 +0000 (08:15 +0000)]
Darwin runtime library does not have these.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36505 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoSpecial handling of LEApcrel and tLEApcrel.
Evan Cheng [Fri, 27 Apr 2007 08:14:15 +0000 (08:14 +0000)]
Special handling of LEApcrel and tLEApcrel.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36504 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoBack out previous check-in. Incorrect.
Evan Cheng [Fri, 27 Apr 2007 07:50:02 +0000 (07:50 +0000)]
Back out previous check-in. Incorrect.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36503 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agotLEApcrel is a AddrModeTs, i.e. pc relative.
Evan Cheng [Fri, 27 Apr 2007 07:37:22 +0000 (07:37 +0000)]
tLEApcrel is a AddrModeTs, i.e. pc relative.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36502 91177308-0d34-0410-b5e6-96231b3b80d8

17 years agoExpand UINT_TO_FP in turns of SINT_TO_FP when UINTTOFP_* libcalls are not available.
Evan Cheng [Fri, 27 Apr 2007 07:33:31 +0000 (07:33 +0000)]
Expand UINT_TO_FP in turns of SINT_TO_FP when UINTTOFP_* libcalls are not available.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36501 91177308-0d34-0410-b5e6-96231b3b80d8