Chris Lattner
1d1f9ade54
fix encoding of invoke instructions. kc++ now round trips
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36737 91177308-0d34-0410-b5e6-96231b3b80d8
2007-05-04 03:52:24 +00:00
Chris Lattner
35a0470e02
fix a misplaced error
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36736 91177308-0d34-0410-b5e6-96231b3b80d8
2007-05-04 03:50:29 +00:00
Chris Lattner
9113e73ecf
encode and read param attrs along with function type. WE can now roundtrip Olden/voronoi loslessly
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36735 91177308-0d34-0410-b5e6-96231b3b80d8
2007-05-04 03:41:34 +00:00
Chris Lattner
645fc4edc2
if functiontype is going to have a pointer to a paramattr object, it better
...
be const. The only way to get a pointer to these returns a const pointer.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36734 91177308-0d34-0410-b5e6-96231b3b80d8
2007-05-04 03:39:28 +00:00
Reid Spencer
e4b4394b2f
Bitcast all the bits of a floating point value, not just one. The zero
...
extension is needed because the constructor for the Destination value
causes the APInt to have a bit width of 1.
Patch by Guoling Han.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36733 91177308-0d34-0410-b5e6-96231b3b80d8
2007-05-04 03:37:38 +00:00
Chris Lattner
48c85b84c1
add support for reading the param attrs block
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36731 91177308-0d34-0410-b5e6-96231b3b80d8
2007-05-04 03:30:17 +00:00
Chris Lattner
f6f9cd1bf2
fix a bug encoding param attrs
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36730 91177308-0d34-0410-b5e6-96231b3b80d8
2007-05-04 03:14:09 +00:00
Chris Lattner
dc78d3a800
remove dead code
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36728 91177308-0d34-0410-b5e6-96231b3b80d8
2007-05-04 03:02:54 +00:00
Chris Lattner
f0a6531997
add writer support for param attrs
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36724 91177308-0d34-0410-b5e6-96231b3b80d8
2007-05-04 02:59:04 +00:00
Reid Spencer
c8f8a242e4
Allow this to compile with gcc 4.0.X
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36723 91177308-0d34-0410-b5e6-96231b3b80d8
2007-05-04 01:43:33 +00:00
Chris Lattner
2020ca2414
pass by reference, not by value
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36721 91177308-0d34-0410-b5e6-96231b3b80d8
2007-05-04 00:45:24 +00:00
Chris Lattner
62bbeea8ea
trivial scaffolding for param attrs
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36720 91177308-0d34-0410-b5e6-96231b3b80d8
2007-05-04 00:44:52 +00:00
Evan Cheng
97c9bb5cc6
On Mac OS X, GV requires an extra load only when relocation-model is non-static.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36718 91177308-0d34-0410-b5e6-96231b3b80d8
2007-05-04 00:26:58 +00:00
Evan Cheng
a7d4a04d24
Don't create indexed load / store with zero offset!
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36716 91177308-0d34-0410-b5e6-96231b3b80d8
2007-05-03 23:52:19 +00:00
Evan Cheng
bdc9869dbf
Should never see an indexed load / store with zero offset.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36714 91177308-0d34-0410-b5e6-96231b3b80d8
2007-05-03 23:30:36 +00:00
Dan Gohman
2acc760165
Allow strength reduction to make use of addressing modes for the
...
address operand in a prefetch intrinsic.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36713 91177308-0d34-0410-b5e6-96231b3b80d8
2007-05-03 23:20:33 +00:00
Chris Lattner
50954f5cba
enumerate parameter attr lists.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36709 91177308-0d34-0410-b5e6-96231b3b80d8
2007-05-03 22:46:43 +00:00
Chris Lattner
76520191ab
Encoding calling conv info in call/invoke instrs, tree add now round trips completely
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36707 91177308-0d34-0410-b5e6-96231b3b80d8
2007-05-03 22:34:03 +00:00
Chris Lattner
c9c55a9d2f
the type field for a store is the type of the pointer, not the value.
...
With this fix I can round trip treeaadd, only losing calling conv info.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36706 91177308-0d34-0410-b5e6-96231b3b80d8
2007-05-03 22:21:59 +00:00
Chris Lattner
38b12ce186
don't bother encoding # varargs
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36705 91177308-0d34-0410-b5e6-96231b3b80d8
2007-05-03 22:19:34 +00:00
Chris Lattner
e825ed5a03
fix encoding of BB names in the symtab
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36704 91177308-0d34-0410-b5e6-96231b3b80d8
2007-05-03 22:18:21 +00:00
Chris Lattner
f61e6457a5
bug fixes
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36701 91177308-0d34-0410-b5e6-96231b3b80d8
2007-05-03 22:09:51 +00:00
Jeff Cohen
b4dbd9e243
Unbreak VC++ build.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36700 91177308-0d34-0410-b5e6-96231b3b80d8
2007-05-03 22:09:21 +00:00
Chris Lattner
0579f7f17f
implement the rest of the instructions
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36699 91177308-0d34-0410-b5e6-96231b3b80d8
2007-05-03 22:04:19 +00:00
Devang Patel
99c282453a
Use iterative while loop instead of recursive function call.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36694 91177308-0d34-0410-b5e6-96231b3b80d8
2007-05-03 20:55:18 +00:00
Dale Johannesen
4ac075c859
Evan's patch to avoid FPreg->intreg copy for cvt; store to mem
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36693 91177308-0d34-0410-b5e6-96231b3b80d8
2007-05-03 20:54:42 +00:00
Lauro Ramos Venancio
e8e5495474
Debug support for arm-linux.
...
Patch by Raul Herbster.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36690 91177308-0d34-0410-b5e6-96231b3b80d8
2007-05-03 20:28:35 +00:00
Chris Lattner
2a98ccabb4
add a few more instructions, getting close
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36688 91177308-0d34-0410-b5e6-96231b3b80d8
2007-05-03 18:58:09 +00:00
Dan Gohman
9570165ef0
Indent the .text, .data, and .bss directives in assembly output, so that
...
they are consistent with the other directives.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36687 91177308-0d34-0410-b5e6-96231b3b80d8
2007-05-03 18:46:30 +00:00
Chris Lattner
82493289e0
This is a patch to fix a compile error in STLExtras.h, and
...
a bug in GraphWriter.cpp.
Patch by Florian Brandner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36684 91177308-0d34-0410-b5e6-96231b3b80d8
2007-05-03 18:32:10 +00:00
Chris Lattner
24eac6cb00
silence annoying gcc 4.3 warnings
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36681 91177308-0d34-0410-b5e6-96231b3b80d8
2007-05-03 18:15:56 +00:00
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
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
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
Anton Korobeynikov
9cd3ccf506
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
2007-04-29 20:56:48 +00:00
Dale Johannesen
8593e41855
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
2007-04-29 19:19:30 +00:00
Dale Johannesen
8650199fbb
Make ARM-specific version of getInlineAsmLength
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36572 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-29 19:17:45 +00:00
Chris Lattner
6995cf6015
generalize aggregate handling
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36568 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-29 18:58:03 +00:00
Anton Korobeynikov
f52e608459
Regenerate
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36566 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-29 18:38:24 +00:00
Anton Korobeynikov
6f9896fcc8
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
2007-04-29 18:35:00 +00:00
Anton Korobeynikov
c6c98af9e5
Implement review feedback
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36564 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-29 18:02:48 +00:00
Jeff Cohen
930c0fead9
Fix MemoryBuffer breakage correctly.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36561 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-29 14:43:31 +00:00
Jeff Cohen
9bc406019e
Unbreak build.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36559 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-29 14:21:44 +00:00
Chris Lattner
c453f76e2b
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
2007-04-29 07:54:31 +00:00
Chris Lattner
333ffd4abf
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
2007-04-29 06:58:52 +00:00
Chris Lattner
01b27458a1
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
2007-04-29 05:49:09 +00:00
Chris Lattner
1a9df8eee0
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
2007-04-29 05:31:57 +00:00
Chris Lattner
09e4b7e1b7
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
2007-04-28 21:12:06 +00:00
Chris Lattner
c83994e5d4
eliminate more redundant constraint type analysis
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36546 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-28 21:03:16 +00:00
Chris Lattner
2a600be226
merge constraint type analysis stuff together.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36545 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-28 21:01:43 +00:00
Chris Lattner
0c58340aea
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
2007-04-28 20:49:53 +00:00
Reid Spencer
9c9b63a5b8
Regenerate.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36543 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-28 16:07:31 +00:00
Reid Spencer
863dd88cc5
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
2007-04-28 16:06:50 +00:00
Anton Korobeynikov
7dde0ff0ba
This is not "FIXME" anymore
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36541 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-28 14:57:59 +00:00
Anton Korobeynikov
0f53f7f240
Let Verifier check aliasees
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36540 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-28 14:35:41 +00:00
Reid Spencer
3cb4ddaec0
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
2007-04-28 14:13:42 +00:00
Anton Korobeynikov
38e09802f6
Regenerate
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36538 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-28 13:48:45 +00:00
Anton Korobeynikov
a80e1181b7
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
2007-04-28 13:45:00 +00:00
Chris Lattner
44b2c5098f
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
2007-04-28 06:42:38 +00:00
Chris Lattner
f2f3cd5129
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
2007-04-28 06:08:13 +00:00
Chris Lattner
bb58b9c3c0
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
2007-04-28 05:38:52 +00:00
Chris Lattner
7f3c4d49df
fix a bug triggered by 403.gcc
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36527 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-28 05:27:36 +00:00
Chris Lattner
e62f021c8c
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
2007-04-28 04:52:43 +00:00
Chris Lattner
b017318122
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
2007-04-28 04:05:59 +00:00
Chris Lattner
53c22fc7c6
uhn zap cvs
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36523 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-28 03:50:56 +00:00
Chris Lattner
73d0d0d4b8
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
2007-04-28 01:02:58 +00:00
Chris Lattner
9bc1464094
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
2007-04-28 00:57:34 +00:00
Dale Johannesen
caa8055cf5
change per review
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36519 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-28 00:36:37 +00:00
Dale Johannesen
25c1f9e125
Prevent Thumb code from generating ARM instructions
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36518 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-27 22:17:18 +00:00
Chris Lattner
6b0974cd1d
add a GEP helper function
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36515 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-27 20:35:56 +00:00
Lauro Ramos Venancio
4c6d20a096
add parenthesis.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36514 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-27 20:10:08 +00:00
Evan Cheng
185ea1e2aa
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
2007-04-27 18:27:13 +00:00
Lauro Ramos Venancio
fdc9692f97
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
2007-04-27 17:58:03 +00:00
Chris Lattner
d3e28347e5
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
2007-04-27 17:44:50 +00:00
Chris Lattner
eb7f34f2cb
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
2007-04-27 17:12:52 +00:00
Lauro Ramos Venancio
64f4fa5e0e
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
2007-04-27 13:54:47 +00:00
Evan Cheng
b1df8f2750
Darwin runtime library does not have these.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36505 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-27 08:15:43 +00:00
Evan Cheng
768c9f725b
Special handling of LEApcrel and tLEApcrel.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36504 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-27 08:14:15 +00:00
Evan Cheng
eec041a037
Back out previous check-in. Incorrect.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36503 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-27 07:50:02 +00:00
Evan Cheng
33fdc983fd
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
2007-04-27 07:37:22 +00:00
Evan Cheng
4c6cfad85e
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
2007-04-27 07:33:31 +00:00
Chris Lattner
99f9a77c49
improve EH global handling, patch by Duncan Sands.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36499 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-27 01:20:11 +00:00
Devang Patel
6e21ff0b0a
Move ~Pass() from Pass.h into Pass.cpp
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36498 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-26 21:33:42 +00:00
Chris Lattner
64c0f84c72
enable Anton's shift/and switch lowering stuff! It now passes ppc bootstrap
...
successfully! woohoo...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36496 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-26 21:09:43 +00:00
Dan Gohman
2a3250cd23
Fix PR1339 and CodeGen/X86/dollar-name.ll
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36495 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-26 21:07:05 +00:00
Bill Wendling
bff35d11f1
Have MMX registers clobbered in x86-64 too.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36494 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-26 21:06:48 +00:00
Anton Korobeynikov
ab8fd40403
Fixx off-by-one bug, which prevents llvm-gcc bootstrap on ppc32
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36490 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-26 20:44:04 +00:00
Dan Gohman
edc1d15984
Fix a typo in a comment.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36485 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-26 19:40:56 +00:00
Evan Cheng
faa510726f
Rename findRegisterUseOperand to findRegisterUseOperandIdx to avoid confusion.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36483 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-26 19:00:32 +00:00
Reid Spencer
6bc6333a10
1. Don't swap byte order in scanf. It isn't necessary and leads to
...
incorrect results (canonicalization was dropped several commits ago).
2. Add support for fscanf.
3. Suppress a warning about cast to pointer from non-pointer-sized integer.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36482 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-26 18:19:35 +00:00
Devang Patel
dfa1ec3bc2
Use toplevel function pass manager as OnTheFly manager.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36481 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-26 17:50:19 +00:00
Zhou Sheng
c125c00e68
Using APInt more efficiently.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36475 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-26 16:42:07 +00:00
Evan Cheng
8e29b2192b
Minor bug.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36473 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-26 08:24:22 +00:00
Chris Lattner
b9d0c2a6a0
start code for writing out instructions. Separate BB#s from normal value
...
#'s.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36472 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-26 05:53:54 +00:00
Chris Lattner
6cdc68200f
regen
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36470 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-26 05:31:05 +00:00
Chris Lattner
4989b84271
wrap long lines
...
Fix PR1358 and test/Assembler/2007-04-25-AssemblerFoldExternWeak.ll, by
creating forward decl globals with linkage extern_weak to defeat implicit
constant folding.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36469 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-26 05:30:35 +00:00
Chris Lattner
c59c0afd7d
enumerate BB's separately from other function values.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36467 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-26 04:42:16 +00:00
Chris Lattner
8d35c79f27
add support for incorporating and purging functions to the value enumerator
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36465 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-26 03:50:57 +00:00
Chris Lattner
51d5f29c3f
improve a comment
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36464 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-26 03:32:43 +00:00
Chris Lattner
198f34ac35
move some code around, fix a bug in the reader reading globalinits (which
...
I just introduced), stub out function reading, purge aggregate values from
the value table before reading functions.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36463 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-26 03:27:58 +00:00
Chris Lattner
07d98b4afb
add bitcode alias support
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36461 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-26 02:46:40 +00:00
Chris Lattner
69dacfce54
print aliases before functions
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36459 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-26 02:24:10 +00:00
Evan Cheng
05350288a6
Be careful when to add implicit kill / dead operands. Don't add them during / post reg-allocation.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36458 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-26 01:40:09 +00:00
Evan Cheng
a24ddddf68
Fix for PR1348. If stack inc / dec amount is > 32-bits, issue a series of add / sub instructions.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36456 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-26 01:09:28 +00:00
Bill Wendling
9de1371fc9
Quiet a compiler warning about assignment in an if-then conditional.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36454 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-25 23:52:02 +00:00
Evan Cheng
6c087e5585
Match MachineFunction::UsedPhysRegs changes.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36452 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-25 22:13:27 +00:00
Evan Cheng
505e5510a2
Change UsedPhysRegs from array bool to BitVector to save some space. Setting / getting its states now go through MachineFunction.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36451 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-25 22:10:09 +00:00
Evan Cheng
ade31f9f07
Clean up.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36449 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-25 21:34:08 +00:00
Bill Wendling
3f3a17dd62
Add SSSE3 as a feature of Core2. Add MMX registers to the list of registers
...
clobbered by a call.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36448 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-25 21:31:48 +00:00
Evan Cheng
e96f50142e
Data structure change to improve compile time (especially in debug mode).
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36447 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-25 19:34:00 +00:00
Evan Cheng
c1a3520580
This was lefted out. Fixed sumarray-dbl.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36445 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-25 18:33:21 +00:00
Devang Patel
68c01b3cf3
Mem2Reg does not need TargetData.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36444 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-25 18:32:35 +00:00
Anton Korobeynikov
c0fabcbabe
Add missed semicolon. Resotre compatibility with older bisons
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36443 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-25 18:07:40 +00:00
Chris Lattner
7c6eefa5f1
do the multiplication as signed, so that 2*-2 == -4 instead of 4294967292
...
when promoted to 64-bits
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36442 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-25 17:23:53 +00:00
Devang Patel
41968df51e
Remove unused function argument.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36441 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-25 17:15:20 +00:00
Lauro Ramos Venancio
305b8a5f62
remember to emit weak reference in one more case.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36438 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-25 14:50:40 +00:00
Anton Korobeynikov
77d0f970b3
Regenerate
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36437 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-25 14:29:12 +00:00
Anton Korobeynikov
8b0a8c84da
Implement aliases. This fixes PR1017 and it's dependent bugs. CFE part
...
will follow.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36435 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-25 14:27:10 +00:00
Evan Cheng
24a3cc4c83
Fix for PR1306.
...
- A register def / use now implicitly affects sub-register liveness but does
not affect liveness information of super-registers.
- Def of a larger register (if followed by a use later) is treated as
read/mod/write of a smaller register.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36434 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-25 07:30:23 +00:00
Evan Cheng
92efbfcd2d
Clean up.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36431 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-25 07:18:20 +00:00
Evan Cheng
1e341729dd
Relex assertions to account for additional implicit def / use operands.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36430 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-25 07:12:14 +00:00
Chris Lattner
79b3bd395d
If an alloca only has two types of uses: 1) reads 2) a memcpy/memmove that
...
copies from a constant global, then we can change the reads to read from the
global instead of from the alloca. This eliminates the alloca and the memcpy,
and promotes secondary optimizations (because the loads are now loads from
a constant global).
This is important for a common C idiom:
void foo() {
int A[] = {1,2,3,4,5,6,7,8,9...};
... only reads of A ...
}
For some reason, people forget to mark the array static or const.
This triggers on these multisource benchmarks:
JM/ldecode: block_pos, [3 x [4 x [4 x i32]]]
FreeBench/mason: m, [18 x i32], inlined 4 times
MiBench/office-stringsearch: search_strings, [1332 x i8*]
MiBench/office-stringsearch: find_strings, [1333 x i8*]
Prolangs-C++/city: dirs, [9 x i8*], inlined 4 places
and these spec benchmarks:
177.mesa: message, [8 x [32 x i8]]
186.crafty: bias_rl45, [64 x i32]
186.crafty: diag_sq, [64 x i32]
186.crafty: empty, [9 x i8]
186.crafty: xlate, [15 x i8]
186.crafty: status, [13 x i8]
186.crafty: bdinfo, [25 x i8]
445.gobmk: routines, [16 x i8*]
458.sjeng: piece_rep, [14 x i8*]
458.sjeng: t, [13 x i32], inlined 4 places.
464.h264ref: block8x8_idx, [3 x [4 x [4 x i32]]]
464.h264ref: block_pos, [3 x [4 x [4 x i32]]]
464.h264ref: j_off_tab, [12 x i32]
This implements Transforms/ScalarRepl/memcpy-from-global.ll
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36429 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-25 06:40:51 +00:00
Chris Lattner
1a34b7bf9a
simplify some code
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36427 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-25 05:49:09 +00:00
Chris Lattner
a10b29b84b
refactor the SROA code out into its own method, no functionality change.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36426 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-25 05:02:56 +00:00
Chris Lattner
ea84c5ee95
support for >4G stack frames
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36425 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-25 04:30:24 +00:00
Chris Lattner
618078016d
support >4G stack frames
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36423 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-25 04:25:10 +00:00
Chris Lattner
a401b1e1c5
support > 4G stack objects
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36422 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-25 04:20:54 +00:00
Owen Anderson
ab0e4d38f0
Undo my previous changes. Since my approach to this problem is being revised,
...
this approach is no longer appropriate.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36421 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-25 04:18:54 +00:00
Chris Lattner
6266c18ea1
allow support for 64-bit stack objects
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36420 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-25 04:08:28 +00:00
Devang Patel
75abc1ed06
Fix
...
http://lists.cs.uiuc.edu/pipermail/llvm-commits/Week-of-Mon-20070423/048376.html
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36417 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-25 00:37:04 +00:00
Chris Lattner
964dd86054
Be more careful about folding op(x, undef) when we have vector operands.
...
This fixes CodeGen/X86/2007-04-24-VectorCrash.ll
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36413 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-25 00:00:45 +00:00
Chris Lattner
6c2d260161
Fix PR1351 and CodeGen/PowerPC/2007-04-24-InlineAsm-I-Modifier.ll
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36410 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-24 22:51:03 +00:00
Bill Wendling
a2c38ae90d
Update.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36407 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-24 21:20:03 +00:00
Bill Wendling
b53e98eb30
Add the PADDQ to the list.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36406 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-24 21:19:14 +00:00
Bill Wendling
69dc5332de
Add the final MMX instructions. Correct a few wrong patterns.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36405 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-24 21:18:37 +00:00
Bill Wendling
6dd29e08f7
Remove some invalid instructions from this check.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36404 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-24 21:17:46 +00:00
Bill Wendling
2f9bb1a0a4
Support for the special case of a vector with the canonical form:
...
vector_shuffle v1, v2, <2, 6, 3, 7>
I.e.
vector_shuffle v, undef, <2, 2, 3, 3>
MMX only has a shuffle for v4i16 vectors. It needs to use the unpackh for
this type of operation.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36403 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-24 21:16:55 +00:00
Bill Wendling
95b3955034
Assertion when using a 1-element vector for an add operation. Get the
...
real vector type in this case.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36402 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-24 21:13:23 +00:00
Chris Lattner
f66d20da61
ensure that every error return sets a message (and goes through Error, for
...
easy breakpointing).
Fix bugs reading constantexpr geps. We now can disassemble kc++ global
initializers.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36398 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-24 18:15:21 +00:00
Chris Lattner
084a844d6d
fix memory leak
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36397 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-24 17:22:05 +00:00
Chris Lattner
4ab2d2009e
fix a memory leak
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36396 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-24 17:20:52 +00:00
Chris Lattner
f581c3b81e
implement reading and writing of constant exprs.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36394 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-24 07:07:11 +00:00
Owen Anderson
3a2b58f3ad
Rollback some changes that adversely affected performance. I'm currently rethinking
...
my approach to this, so hopefully I'll find a way to do this without making this slower.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36392 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-24 06:40:39 +00:00