Chris Lattner
5c71df1376
add support for array abbreviations.
...
llvm-svn: 36754
2007-05-04 20:33:47 +00:00
Chris Lattner
e14cb88e56
eliminate internal length fields from record. Records already know their
...
total length
llvm-svn: 36752
2007-05-04 19:11:41 +00:00
Chris Lattner
a49bfa6701
eliminate lengths from record bodies
...
llvm-svn: 36751
2007-05-04 19:10:48 +00:00
Chris Lattner
702658c0cc
stub out creation of BLOCKINFO_BLOCK
...
llvm-svn: 36749
2007-05-04 18:26:27 +00:00
Chris Lattner
83e10c4e67
minor cleanups. Add provisions for a new standard BLOCKINFO_BLOCK
...
block type.
llvm-svn: 36748
2007-05-04 18:25:49 +00:00
Chris Lattner
fde2829347
refcount BitCodeAbbrev objects
...
llvm-svn: 36747
2007-05-04 17:35:19 +00:00
Duncan Sands
6e5011d208
Test that the eh lowering code can handle constant folded bitcasts.
...
llvm-svn: 36746
2007-05-04 17:14:42 +00:00
Duncan Sands
4cb9eb81ef
A bitcast of a global variable may have been constant folded to a GEP -
...
handle this case too.
llvm-svn: 36745
2007-05-04 17:12:26 +00:00
Dan Gohman
2bcbd5b7ca
Use IntrinsicInst to test for prefetch instructions, which is ever so
...
slightly nicer than using CallInst with an extra check; thanks Chris.
llvm-svn: 36743
2007-05-04 14:59:09 +00:00
Chris Lattner
430e80d670
optimize constant layout. This fixes encoding of 181.mcf (by ensuring
...
integer structure idx's are emitted before constant expr geps) and shrinks
files slightly. For example kc++ shrinks from 4326188 to 4240128 bytes.
llvm-svn: 36742
2007-05-04 05:21:47 +00:00
Chris Lattner
a8713beddd
simple optimization for the type table
...
llvm-svn: 36741
2007-05-04 05:05:48 +00:00
Chris Lattner
5c455c3fe9
regenerate
...
llvm-svn: 36740
2007-05-04 04:01:37 +00:00
Chris Lattner
cf40d5097b
fix a bug where llvm-as couldn't assemble the .ll file for 252.eon.
...
llvm-svn: 36739
2007-05-04 04:01:07 +00:00
Chris Lattner
beca065b1e
storeinst ctor takes isvolatile before alignment. With this, 176.gcc roundtrips
...
llvm-svn: 36738
2007-05-04 03:57:30 +00:00
Chris Lattner
485a6d8fad
fix encoding of invoke instructions. kc++ now round trips
...
llvm-svn: 36737
2007-05-04 03:52:24 +00:00
Chris Lattner
e11c6ce3bc
fix a misplaced error
...
llvm-svn: 36736
2007-05-04 03:50:29 +00:00
Chris Lattner
70f4566d8a
encode and read param attrs along with function type. WE can now roundtrip Olden/voronoi loslessly
...
llvm-svn: 36735
2007-05-04 03:41:34 +00:00
Chris Lattner
a919f6dddc
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.
llvm-svn: 36734
2007-05-04 03:39:28 +00:00
Reid Spencer
0454316c79
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.
llvm-svn: 36733
2007-05-04 03:37:38 +00:00
Reid Spencer
955162aaae
Add a test case for testing the LLI interpreter wrt bitcast of fp to integer.
...
llvm-svn: 36732
2007-05-04 03:35:17 +00:00
Chris Lattner
fee5a3752a
add support for reading the param attrs block
...
llvm-svn: 36731
2007-05-04 03:30:17 +00:00
Chris Lattner
fc5b619419
fix a bug encoding param attrs
...
llvm-svn: 36730
2007-05-04 03:14:09 +00:00
Chris Lattner
c97d08f702
add a helper
...
llvm-svn: 36729
2007-05-04 03:13:39 +00:00
Chris Lattner
a68e3c7cf3
remove dead code
...
llvm-svn: 36728
2007-05-04 03:02:54 +00:00
Chris Lattner
302dc74536
remove unused code
...
llvm-svn: 36727
2007-05-04 03:01:46 +00:00
Chris Lattner
0b7c5121f7
add support for new codes/block
...
llvm-svn: 36726
2007-05-04 03:01:41 +00:00
Chris Lattner
e796a9eec9
add new codes
...
llvm-svn: 36725
2007-05-04 03:00:00 +00:00
Chris Lattner
e72bf9fda6
add writer support for param attrs
...
llvm-svn: 36724
2007-05-04 02:59:04 +00:00
Reid Spencer
dea02bd840
Allow this to compile with gcc 4.0.X
...
llvm-svn: 36723
2007-05-04 01:43:33 +00:00
Chris Lattner
2b1b18b2db
new testcase
...
llvm-svn: 36722
2007-05-04 00:51:23 +00:00
Chris Lattner
874eb28ee6
pass by reference, not by value
...
llvm-svn: 36721
2007-05-04 00:45:24 +00:00
Chris Lattner
e2f98ef52d
trivial scaffolding for param attrs
...
llvm-svn: 36720
2007-05-04 00:44:52 +00:00
Evan Cheng
726e66f734
Test load global in static mode.
...
llvm-svn: 36719
2007-05-04 00:29:34 +00:00
Evan Cheng
33c9886001
On Mac OS X, GV requires an extra load only when relocation-model is non-static.
...
llvm-svn: 36718
2007-05-04 00:26:58 +00:00
Evan Cheng
579abf45bb
New test case.
...
llvm-svn: 36717
2007-05-03 23:53:36 +00:00
Evan Cheng
044a0a8cfb
Don't create indexed load / store with zero offset!
...
llvm-svn: 36716
2007-05-03 23:52:19 +00:00
Evan Cheng
23040754b0
Should never see an indexed load / store with zero offset.
...
llvm-svn: 36714
2007-05-03 23:30:36 +00:00
Dan Gohman
3fbb18d1b6
Allow strength reduction to make use of addressing modes for the
...
address operand in a prefetch intrinsic.
llvm-svn: 36713
2007-05-03 23:20:33 +00:00
Chris Lattner
e4bbad630f
enumerate parameter attr lists.
...
llvm-svn: 36709
2007-05-03 22:46:43 +00:00
Chris Lattner
4704527576
Encoding calling conv info in call/invoke instrs, tree add now round trips completely
...
llvm-svn: 36707
2007-05-03 22:34:03 +00:00
Chris Lattner
c1d86cda8c
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.
llvm-svn: 36706
2007-05-03 22:21:59 +00:00
Chris Lattner
4bb39dbfde
don't bother encoding # varargs
...
llvm-svn: 36705
2007-05-03 22:19:34 +00:00
Chris Lattner
6be58c65d4
fix encoding of BB names in the symtab
...
llvm-svn: 36704
2007-05-03 22:18:21 +00:00
Chris Lattner
5a800309af
add a new code
...
llvm-svn: 36703
2007-05-03 22:16:11 +00:00
Chris Lattner
6ce15cb71e
bug fixes
...
llvm-svn: 36701
2007-05-03 22:09:51 +00:00
Jeff Cohen
ee7bf76342
Unbreak VC++ build.
...
llvm-svn: 36700
2007-05-03 22:09:21 +00:00
Chris Lattner
9f600c5d9d
implement the rest of the instructions
...
llvm-svn: 36699
2007-05-03 22:04:19 +00:00
Devang Patel
2acc9769cc
Use iterative while loop instead of recursive function call.
...
llvm-svn: 36694
2007-05-03 20:55:18 +00:00
Dale Johannesen
89200ce0f0
Evan's patch to avoid FPreg->intreg copy for cvt; store to mem
...
llvm-svn: 36693
2007-05-03 20:54:42 +00:00
Lauro Ramos Venancio
83930198dd
Debug support for arm-linux.
...
Patch by Raul Herbster.
llvm-svn: 36690
2007-05-03 20:28:35 +00:00
Chris Lattner
c332bbaae4
add a few more instructions, getting close
...
llvm-svn: 36688
2007-05-03 18:58:09 +00:00
Dan Gohman
2675a651b0
Indent the .text, .data, and .bss directives in assembly output, so that
...
they are consistent with the other directives.
llvm-svn: 36687
2007-05-03 18:46:30 +00:00
Dan Gohman
ac050d446b
Use the explicit keyword for the SCEV class' constructor.
...
llvm-svn: 36686
2007-05-03 18:45:06 +00:00
Evan Cheng
779b52e4c4
Added -rsh-host and -rsh-user to support remote execution.
...
llvm-svn: 36685
2007-05-03 18:36:15 +00:00
Chris Lattner
357882d27c
This is a patch to fix a compile error in STLExtras.h, and
...
a bug in GraphWriter.cpp.
Patch by Florian Brandner
llvm-svn: 36684
2007-05-03 18:32:10 +00:00
Evan Cheng
847f31ec25
negatize -> negative
...
llvm-svn: 36683
2007-05-03 18:20:17 +00:00
Chris Lattner
7de1ebae4a
silence annoying gcc 4.3 warnings
...
llvm-svn: 36681
2007-05-03 18:15:56 +00:00
Chris Lattner
dad2d0939c
silence some annoying gcc 4.3 warnings
...
llvm-svn: 36680
2007-05-03 18:15:36 +00:00
Chris Lattner
44e49e8665
remove extraneous type qualifiers
...
llvm-svn: 36679
2007-05-03 18:14:56 +00:00
Chris Lattner
2b8a4a624b
remove extraneous top-level semi's
...
llvm-svn: 36678
2007-05-03 18:13:15 +00:00
Chris Lattner
e33d087d1d
remove two useless functions. Just inherit Type's implementation instead.
...
llvm-svn: 36677
2007-05-03 17:10:20 +00:00
Chris Lattner
b86da5adbc
remove useless type qualifiers
...
llvm-svn: 36676
2007-05-03 17:09:36 +00:00
Chris Lattner
d0803d2e4e
avoid invalid C++ token in #error
...
llvm-svn: 36674
2007-05-03 16:57:26 +00:00
Chris Lattner
44a2ed66b1
Allow i/s to match (gv+c). This fixes CodeGen/PowerPC/2007-05-03-InlineAsm-S-Constraint.ll
...
and PR1382
llvm-svn: 36672
2007-05-03 16:54:34 +00:00
Chris Lattner
3725488356
new testcase
...
llvm-svn: 36671
2007-05-03 16:54:08 +00:00
Chris Lattner
83df45a959
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".
llvm-svn: 36670
2007-05-03 16:52:29 +00:00
Chris Lattner
9a8c7cf00b
add support for printing offset from global
...
llvm-svn: 36669
2007-05-03 16:42:23 +00:00
Chris Lattner
90bb4fc96b
revert accidental commit
...
llvm-svn: 36668
2007-05-03 16:40:25 +00:00
Chris Lattner
c1a2a3b344
add support for printing offset of global
...
llvm-svn: 36667
2007-05-03 16:39:48 +00:00
Dan Gohman
e27e6e6fa8
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.
llvm-svn: 36666
2007-05-03 16:38:57 +00:00
Lauro Ramos Venancio
0974db9111
Make my proxy happy.
...
llvm-svn: 36665
2007-05-03 14:05:07 +00:00
Chris Lattner
4995f92cbc
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]
llvm-svn: 36664
2007-05-03 02:57:13 +00:00
Evan Cheng
bef131de68
Typo. It's checking if V is multiple of 4, not multiple of 3. :-)
...
llvm-svn: 36663
2007-05-03 02:00:18 +00:00
Devang Patel
8c78a0bff0
Drop 'const'
...
llvm-svn: 36662
2007-05-03 01:11:54 +00:00
Devang Patel
7aa944da8b
New test.
...
llvm-svn: 36661
2007-05-03 00:42:22 +00:00
Chris Lattner
1c1082133c
match a reassociated form of fnmul. This implements CodeGen/ARM/fnmul.ll
...
llvm-svn: 36660
2007-05-03 00:32:00 +00:00
Chris Lattner
483dc2bf08
match a reassociated form of fnmul
...
llvm-svn: 36659
2007-05-03 00:31:40 +00:00
Chris Lattner
f65f18b2f9
expose HonorSignDependentRoundingFPMathOption to .td files
...
llvm-svn: 36658
2007-05-03 00:27:11 +00:00
Chris Lattner
6ac3a37fb6
Add a new option.
...
llvm-svn: 36657
2007-05-03 00:16:07 +00:00
Bill Wendling
b5ce7c5466
Non-algorithmic change. Moved definitions around into separate sections
...
for SSE1, SSE2, SSE3, and SSSE3.
llvm-svn: 36656
2007-05-02 23:11:52 +00:00
Anton Korobeynikov
11940fbba3
Properly set arguments bitwidth of EHSELECT node
...
llvm-svn: 36654
2007-05-02 22:15:48 +00:00
Bill Wendling
ba3b7ee030
Update.
...
llvm-svn: 36653
2007-05-02 21:42:20 +00:00
Devang Patel
e95c6ad802
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.
llvm-svn: 36652
2007-05-02 21:39:20 +00:00
Reid Spencer
700a0381b5
Disable RTTI handling until we're ready.
...
llvm-svn: 36651
2007-05-02 21:31:09 +00:00
Reid Spencer
e6bc20629d
Add a rule to get the footprint of binaries and libraries.
...
llvm-svn: 36650
2007-05-02 21:29:39 +00:00
Devang Patel
0f88f76cfe
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.
llvm-svn: 36649
2007-05-02 20:38:25 +00:00
Lauro Ramos Venancio
41223586a2
Fix build error.
...
llvm-svn: 36648
2007-05-02 20:37:47 +00:00
Anton Korobeynikov
f1dcf69fc3
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.
llvm-svn: 36647
2007-05-02 19:53:33 +00:00
Anton Korobeynikov
073ad20459
Emit correct DWARF reg # for RA (return address) register
...
llvm-svn: 36646
2007-05-02 08:46:03 +00:00
Duncan Sands
89b1f3a847
Test that TREE_CONSTANT is being set correctly.
...
llvm-svn: 36645
2007-05-02 07:43:14 +00:00
Duncan Sands
e0361b4945
Test that inline assembler compiles (llvm-gcc added an extra "uses" parameter
...
to ASM_EXPR).
llvm-svn: 36644
2007-05-02 07:41:22 +00:00
Chris Lattner
7f716a937f
update to reflect reality
...
llvm-svn: 36643
2007-05-02 05:47:22 +00:00
Chris Lattner
5285b5ea2f
add reader logic for terminator instrs.
...
llvm-svn: 36642
2007-05-02 05:46:45 +00:00
Chris Lattner
1fc27f0cdb
add reader support for a bunch of new instructions
...
llvm-svn: 36641
2007-05-02 05:16:49 +00:00
Chris Lattner
e53603e4e2
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
}
llvm-svn: 36640
2007-05-02 04:27:25 +00:00
Chris Lattner
9f35f9112d
use the correct code for binop instrs
...
llvm-svn: 36639
2007-05-02 04:26:36 +00:00
Chris Lattner
11dfd35627
revert enough of devang's recent patches to get the tree basically working again
...
llvm-svn: 36638
2007-05-02 04:25:31 +00:00
Chris Lattner
7e86dc2684
disable this assertion as a hack to get the build more unbroken :(
...
llvm-svn: 36637
2007-05-02 04:01:44 +00:00
Reid Spencer
f3aa932824
Make sign extension work correctly for unusual bit widths.
...
llvm-svn: 36635
2007-05-02 02:17:41 +00:00
Dale Johannesen
9ce17f1e33
Add some support for (Darwin) code-generating directives in getInlineAsmLength.
...
Support is incomplete, but more accurate than gcc's.
llvm-svn: 36634
2007-05-02 01:02:40 +00:00
Anton Korobeynikov
b538f67b1a
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.
llvm-svn: 36633
2007-05-01 22:23:12 +00:00
Devang Patel
09f162ca6a
Do not use typeinfo to identify pass in pass manager.
...
llvm-svn: 36632
2007-05-01 21:15:47 +00:00
Devang Patel
a612049dd8
Update doc to reflect changes I am about to install to fix PR 888.
...
llvm-svn: 36631
2007-05-01 20:55:38 +00:00
Evan Cheng
fa34bc9623
Doh. PC displacement is between the constantpool and the add instruction.
...
llvm-svn: 36630
2007-05-01 20:27:19 +00:00
Duncan Sands
bb7989b622
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.
llvm-svn: 36629
2007-05-01 18:49:30 +00:00
Anton Korobeynikov
76c8c95466
Use correct PC symbol
...
llvm-svn: 36628
2007-05-01 10:19:31 +00:00
Anton Korobeynikov
2ac2197a0f
Adjust correct EH-related sections
...
llvm-svn: 36627
2007-05-01 10:16:06 +00:00
Evan Cheng
5662b21db1
eliminateFrameIndex() change.
...
llvm-svn: 36626
2007-05-01 09:13:03 +00:00
Evan Cheng
8cd28f0fb1
If call frame is not part of stack frame and no dynamic alloc, eliminateFrameIndex() must adjust SP offset with size of call frames.
...
llvm-svn: 36625
2007-05-01 09:01:42 +00:00
Evan Cheng
61e237d6a5
Pass call frame setup SP adjustment along to eliminateFrameIndex().
...
llvm-svn: 36624
2007-05-01 08:59:18 +00:00
Evan Cheng
16827c38c4
Add SPAdj parameter to account for call frame setup SP adjustment.
...
llvm-svn: 36623
2007-05-01 08:58:27 +00:00
Evan Cheng
b68343cdd8
Forgot about chain result; also UNDEF cannot have multiple values.
...
llvm-svn: 36622
2007-05-01 08:53:39 +00:00
Chris Lattner
b811e951e9
fix build with non-buggy compilers
...
llvm-svn: 36621
2007-05-01 07:03:37 +00:00
Chris Lattner
8393055447
handle function-level forward references, read binops.
...
llvm-svn: 36620
2007-05-01 07:01:57 +00:00
Nate Begeman
fd788aafba
A bit of feedback from Chris that I missed; error rather than asserting.
...
llvm-svn: 36619
2007-05-01 06:08:36 +00:00
Nate Begeman
27a625a74b
llvm bug #1350 , parts 1, 2, and 3.
...
llvm-svn: 36618
2007-05-01 05:57:02 +00:00
Chris Lattner
85b7b40621
implement materializeModule, force deallocation of vector memory when we
...
are done with them, start implementing ParseFunctionBody
llvm-svn: 36617
2007-05-01 05:52:21 +00:00
Chris Lattner
81c7fc2783
several bitfixes to JumpToBit
...
llvm-svn: 36616
2007-05-01 05:51:32 +00:00
Chris Lattner
48a8de3f4d
The stream to read from is now an ivar
...
llvm-svn: 36615
2007-05-01 05:01:34 +00:00
Chris Lattner
51ffe7ce15
implement scafolding for lazy deserialization of function bodies
...
llvm-svn: 36614
2007-05-01 04:59:48 +00:00
Chris Lattner
0f9f44a96d
add JumpToBit, an explicit init method, and a default ctor.
...
llvm-svn: 36613
2007-05-01 04:59:06 +00:00
Reid Spencer
0659c45204
Split target dependent test portions to target-specific directories.
...
llvm-svn: 36612
2007-05-01 02:56:15 +00:00
Chris Lattner
5fab65dbbf
add phi
...
llvm-svn: 36611
2007-05-01 02:43:46 +00:00
Chris Lattner
fb6f9407ec
write the symbol table for function bodies
...
llvm-svn: 36610
2007-05-01 02:14:57 +00:00
Chris Lattner
0a60325621
encode all of the instructions.
...
llvm-svn: 36609
2007-05-01 02:13:26 +00:00
Chris Lattner
20f0d2e290
add missing opcode.
...
llvm-svn: 36608
2007-05-01 02:12:05 +00:00
Evan Cheng
77c545e6b8
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.
llvm-svn: 36607
2007-05-01 00:52:08 +00:00
Evan Cheng
366feaed91
Added hook hasReservedCallFrame(). It returns true if the call frame is
...
included as part of the stack frame.
llvm-svn: 36606
2007-05-01 00:47:46 +00:00
Evan Cheng
8a16201953
Test a dag combiner crasher.
...
llvm-svn: 36605
2007-05-01 00:40:38 +00:00
Evan Cheng
a684cd23a5
* Only turn a load to UNDEF if all of its outputs have no uses (indexed loads
...
produce two results.)
* Do not touch volatile loads.
llvm-svn: 36604
2007-05-01 00:38:21 +00:00
Christopher Lamb
7c30c26fcb
Implement review feedback.
...
llvm-svn: 36603
2007-04-30 23:54:10 +00:00
Chris Lattner
4dbbace4ff
Fix PR1228 and CodeGen/Generic/2007-04-30-LandingPadBranchFolding.ll
...
llvm-svn: 36602
2007-04-30 23:35:00 +00:00
Chris Lattner
9d912af4e8
testcase for PR1228
...
llvm-svn: 36601
2007-04-30 23:34:46 +00:00
Chris Lattner
f90c8fbd2b
print isLandingPad() for MBBs
...
llvm-svn: 36600
2007-04-30 23:12:53 +00:00
Chris Lattner
8cfd33b647
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
llvm-svn: 36599
2007-04-30 21:11:17 +00:00
Chris Lattner
7c2c1b7180
testcase for PR1357
...
llvm-svn: 36598
2007-04-30 21:10:13 +00:00
Christopher Lamb
019064279e
Header file for ELF relocations.
...
llvm-svn: 36597
2007-04-30 20:41:08 +00:00
Anton Korobeynikov
16e2c5fec1
Fix comment
...
llvm-svn: 36596
2007-04-30 19:14:56 +00:00
Evan Cheng
6b77c3ed52
Updates.
...
llvm-svn: 36594
2007-04-30 18:42:09 +00:00
Chris Lattner
4333f8b1cf
refactor GetRegistersForValue to take OpInfo as an argument instead of various
...
pieces of it. No functionality change.
llvm-svn: 36592
2007-04-30 17:29:31 +00:00
Chris Lattner
ef07332504
refactor some code, no functionality change
...
llvm-svn: 36590
2007-04-30 17:16:27 +00:00
Chris Lattner
b58f93f273
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
llvm-svn: 36589
2007-04-30 17:00:18 +00:00
Anton Korobeynikov
a30bc8fccf
Fix typo. Interesting, but old variant worked too :)
...
llvm-svn: 36588
2007-04-30 10:28:40 +00:00
Reid Spencer
e7449654d1
For PR1370:
...
Rearrange some tests so that if PowerPC is not being built we don't try to
run PowerPC specific tests.
llvm-svn: 36587
2007-04-30 05:11:58 +00:00
Dale Johannesen
8dd36a51fc
Remove item: thumb padding in constant islands
...
llvm-svn: 36586
2007-04-30 00:32:06 +00:00
Dale Johannesen
71577f3848
remove unused variable
...
llvm-svn: 36585
2007-04-30 00:30:48 +00:00
Reid Spencer
8d4ff90680
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.
llvm-svn: 36584
2007-04-30 00:29:39 +00:00
Lauro Ramos Venancio
2c673ad7ef
Enable protected visibility on ARM.
...
llvm-svn: 36583
2007-04-30 00:23:51 +00:00
Reid Spencer
d857ef651b
Dependent libraries could be native too.
...
llvm-svn: 36582
2007-04-30 00:00:10 +00:00
Reid Spencer
986b9df04e
Augment the verbose output to print out the sub-commands executed.
...
llvm-svn: 36581
2007-04-29 23:59:47 +00:00
Chris Lattner
84e376f669
add some helpers
...
llvm-svn: 36580
2007-04-29 21:49:05 +00:00
Chris Lattner
3543caacd3
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.
llvm-svn: 36579
2007-04-29 21:48:19 +00:00
Anton Korobeynikov
31fc4f9526
Implement visibility checking during linking. Also implement protected
...
visibility support for bitcode.
llvm-svn: 36577
2007-04-29 20:56:48 +00:00
Chris Lattner
1684cee5a2
add some simple per-block statistics
...
llvm-svn: 36576
2007-04-29 20:00:02 +00:00
Chris Lattner
e2ea46d50b
compute this value correctly
...
llvm-svn: 36575
2007-04-29 19:49:58 +00:00
Dale Johannesen
4a00cf3fc4
Rewrite of Thumb constant islands handling (exact allowance for padding
...
around islands and jump tables).
llvm-svn: 36573
2007-04-29 19:19:30 +00:00
Dale Johannesen
1ee29dd026
Make ARM-specific version of getInlineAsmLength
...
llvm-svn: 36572
2007-04-29 19:17:45 +00:00
Chris Lattner
b9bf8a8daa
add a method
...
llvm-svn: 36571
2007-04-29 19:17:32 +00:00
Chris Lattner
f897cb45a5
not all targets want to return an i32. What really matters is whether llc accepts the generated code.
...
llvm-svn: 36569
2007-04-29 18:59:01 +00:00
Chris Lattner
412d61af43
generalize aggregate handling
...
llvm-svn: 36568
2007-04-29 18:58:03 +00:00
Anton Korobeynikov
6058a35624
Regenerate
...
llvm-svn: 36566
2007-04-29 18:38:24 +00:00
Anton Korobeynikov
39f3cffbe3
Implement protected visibility. This partly implements PR1363. Linker
...
should be taught to deal with protected symbols.
llvm-svn: 36565
2007-04-29 18:35:00 +00:00
Anton Korobeynikov
546ea7ea88
Implement review feedback
...
llvm-svn: 36564
2007-04-29 18:02:48 +00:00
Chris Lattner
a05721d340
Jeff's fix was fine
...
llvm-svn: 36563
2007-04-29 17:44:10 +00:00
Chris Lattner
8f73e83c49
add missing ctor
...
llvm-svn: 36562
2007-04-29 17:40:50 +00:00
Jeff Cohen
990a58f242
Fix MemoryBuffer breakage correctly.
...
llvm-svn: 36561
2007-04-29 14:43:31 +00:00
Jeff Cohen
af81575b68
Unbreak VC++ build.
...
llvm-svn: 36560
2007-04-29 14:22:14 +00:00
Jeff Cohen
50b2d2c6e3
Unbreak build.
...
llvm-svn: 36559
2007-04-29 14:21:44 +00:00
Anton Korobeynikov
8a00ba1c69
Updated aliases test
...
llvm-svn: 36558
2007-04-29 10:34:42 +00:00
Chris Lattner
ca0ea543f5
Implement support to read an arbitrary bitcode file. Next up, dumping the
...
file symbolically and actually computing statistics.
llvm-svn: 36557
2007-04-29 08:31:14 +00:00
Chris Lattner
0399758b5f
very early support for analyzing a bitstream. This opens the file, starts
...
reading the stream, and detects whether it is LLVM IR or not.
llvm-svn: 36556
2007-04-29 08:12:22 +00:00
Chris Lattner
fc4d7cd1ff
make this file self-contained
...
llvm-svn: 36555
2007-04-29 08:05:07 +00:00
Chris Lattner
6694f60bec
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.
llvm-svn: 36554
2007-04-29 07:54:31 +00:00
Chris Lattner
ee2d1f1ed2
Add a new memorybuffer class, to unify all the file reading code in the system
...
llvm-svn: 36553
2007-04-29 06:58:52 +00:00
Chris Lattner
084982501a
new method for creating a path, which does not create a temporary string.
...
llvm-svn: 36552
2007-04-29 06:16:32 +00:00
Chris Lattner
cc18989c14
fit in 80 cols
...
llvm-svn: 36551
2007-04-29 05:51:00 +00:00
Chris Lattner
f0a1ebae4b
Fix this to use the right block ID
...
llvm-svn: 36550
2007-04-29 05:49:09 +00:00
Chris Lattner
87351e2a52
moved Writer.cpp -> BitcodeWriter.cpp to make it more unique in the tree.
...
llvm-svn: 36549
2007-04-29 05:31:57 +00:00
Jeff Cohen
222a8a4311
Minor corrections.
...
llvm-svn: 36548
2007-04-29 01:07:00 +00:00
Chris Lattner
401d8db381
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
llvm-svn: 36547
2007-04-28 21:12:06 +00:00
Chris Lattner
de339fa55d
eliminate more redundant constraint type analysis
...
llvm-svn: 36546
2007-04-28 21:03:16 +00:00
Chris Lattner
b2e55562ed
merge constraint type analysis stuff together.
...
llvm-svn: 36545
2007-04-28 21:01:43 +00:00
Chris Lattner
d7e3b6c442
Significant refactoring of the inline asm stuff, to support future changes.
...
No functionality change.
llvm-svn: 36544
2007-04-28 20:49:53 +00:00
Reid Spencer
25d797b7ca
Regenerate.
...
llvm-svn: 36543
2007-04-28 16:07:31 +00:00
Reid Spencer
7851765b0a
Revert the premature portion of the last commit.
...
llvm-svn: 36542
2007-04-28 16:06:50 +00:00
Anton Korobeynikov
daf358bbff
This is not "FIXME" anymore
...
llvm-svn: 36541
2007-04-28 14:57:59 +00:00
Anton Korobeynikov
7b2a2f9075
Let Verifier check aliasees
...
llvm-svn: 36540
2007-04-28 14:35:41 +00:00
Reid Spencer
b19636e4af
Fix a compilation error (jump to case label).
...
llvm-svn: 36539
2007-04-28 14:13:42 +00:00
Anton Korobeynikov
511d54f61b
Regenerate
...
llvm-svn: 36538
2007-04-28 13:48:45 +00:00
Anton Korobeynikov
b18f8f85e9
Implement review feedback. Aliasees can be either GlobalValue's or
...
bitcasts of them.
llvm-svn: 36537
2007-04-28 13:45:00 +00:00
Chris Lattner
1deacd61f4
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
llvm-svn: 36536
2007-04-28 06:42:38 +00:00
Chris Lattner
5f59451529
new testcase for PR1356
...
llvm-svn: 36535
2007-04-28 06:41:13 +00:00
Chris Lattner
d102ed0ac6
Fix CodeGen/Generic/2007-04-27-LargeMemObject.ll and
...
CodeGen/Generic/2007-04-27-InlineAsm-X-Dest.ll
llvm-svn: 36534
2007-04-28 06:08:13 +00:00
Chris Lattner
7141c393b6
ensure the operand prints.
...
llvm-svn: 36533
2007-04-28 06:07:55 +00:00
Chris Lattner
61553c1340
new testcase
...
llvm-svn: 36532
2007-04-28 06:05:59 +00:00
Chris Lattner
193d2f09f0
update syntax
...
llvm-svn: 36531
2007-04-28 06:03:12 +00:00
Chris Lattner
e53e2eeecb
not fully implemented yet.
...
llvm-svn: 36530
2007-04-28 06:02:13 +00:00
Chris Lattner
f40a0a8b9f
add a default parameter
...
llvm-svn: 36529
2007-04-28 05:42:38 +00:00
Chris Lattner
19651c77b2
add a way to make this less brittle
...
llvm-svn: 36528
2007-04-28 05:38:52 +00:00
Chris Lattner
089e35cc57
fix a bug triggered by 403.gcc
...
llvm-svn: 36527
2007-04-28 05:27:36 +00:00
Chris Lattner
73b3b80815
update for new inline asm syntax
...
llvm-svn: 36526
2007-04-28 05:20:26 +00:00
Chris Lattner
6e880871e9
Fix several latent bugs in EmitGEPOffset that didn't manifest with its
...
previous clients. This fixes MallocBench/gs
llvm-svn: 36525
2007-04-28 04:52:43 +00:00
Chris Lattner
4df3e8093b
Fix this to match change to InlineAsm class.
...
llvm-svn: 36524
2007-04-28 04:05:59 +00:00
Chris Lattner
c753800800
uhn zap cvs
...
llvm-svn: 36523
2007-04-28 03:50:56 +00:00
Chris Lattner
c48e2c3100
represent indirect operands explicitly in inline asm strings.
...
llvm-svn: 36522
2007-04-28 01:02:58 +00:00
Chris Lattner
acbf6a401d
Implement PR1345 and Transforms/InstCombine/bitcast-gep.ll
...
llvm-svn: 36521
2007-04-28 00:57:34 +00:00
Chris Lattner
1df6c1c5b0
new testcase
...
llvm-svn: 36520
2007-04-28 00:54:45 +00:00
Dale Johannesen
7e7280b538
change per review
...
llvm-svn: 36519
2007-04-28 00:36:37 +00:00
Dale Johannesen
29c05756b5
Prevent Thumb code from generating ARM instructions
...
llvm-svn: 36518
2007-04-27 22:17:18 +00:00
Lauro Ramos Venancio
940b083a63
fix the test tls1.
...
llvm-svn: 36517
2007-04-27 21:23:17 +00:00
Lauro Ramos Venancio
04750a18be
add TLS tests.
...
llvm-svn: 36516
2007-04-27 21:08:48 +00:00
Chris Lattner
2705829925
add a GEP helper function
...
llvm-svn: 36515
2007-04-27 20:35:56 +00:00
Lauro Ramos Venancio
99cb63029a
add parenthesis.
...
llvm-svn: 36514
2007-04-27 20:10:08 +00:00
Evan Cheng
559c546453
Doh. ARM::LEApcrel is a single instruction MI.
...
llvm-svn: 36513
2007-04-27 18:27:13 +00:00
Lauro Ramos Venancio
62f65468bc
In Thumb mode, the frame register must be R7.
...
llvm-svn: 36512
2007-04-27 17:58:03 +00:00
Chris Lattner
1db224db92
refactor some code relating to pointer cast xforms, pulling it out of the codepath
...
for unrelated casts.
llvm-svn: 36511
2007-04-27 17:44:50 +00:00
Chris Lattner
1cbe208cda
Fix incorrect legalization of EHSELECTOR. This fixes
...
CodeGen/Generic/2007-04-14-EHSelectorCrash.ll and PR1326
llvm-svn: 36510
2007-04-27 17:12:52 +00:00
Chris Lattner
83a5e928e6
make this testcase harder, to cover PR1326
...
llvm-svn: 36509
2007-04-27 17:12:23 +00:00
Chris Lattner
4c522b9434
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. :(
llvm-svn: 36508
2007-04-27 17:02:33 +00:00
Jeff Cohen
6a23901014
Fix prolific source of 'possible loss of data' warnings.
...
llvm-svn: 36507
2007-04-27 14:43:05 +00:00
Lauro Ramos Venancio
c39c12a3fa
ARM TLS: implement "general dynamic", "initial exec" and "local exec" models.
...
llvm-svn: 36506
2007-04-27 13:54:47 +00:00
Evan Cheng
c9f22fd1a4
Darwin runtime library does not have these.
...
llvm-svn: 36505
2007-04-27 08:15:43 +00:00
Evan Cheng
d9990f061f
Special handling of LEApcrel and tLEApcrel.
...
llvm-svn: 36504
2007-04-27 08:14:15 +00:00
Evan Cheng
e54018687d
Back out previous check-in. Incorrect.
...
llvm-svn: 36503
2007-04-27 07:50:02 +00:00
Evan Cheng
68ec63b3d7
tLEApcrel is a AddrModeTs, i.e. pc relative.
...
llvm-svn: 36502
2007-04-27 07:37:22 +00:00
Evan Cheng
bf535fc8bd
Expand UINT_TO_FP in turns of SINT_TO_FP when UINTTOFP_* libcalls are not available.
...
llvm-svn: 36501
2007-04-27 07:33:31 +00:00
Duncan Sands
9e72fc1163
Test that eh_selector lowering accepts global variables as well as bitcasts
...
of global variables.
llvm-svn: 36500
2007-04-27 06:56:53 +00:00
Chris Lattner
784fe9dbbb
improve EH global handling, patch by Duncan Sands.
...
llvm-svn: 36499
2007-04-27 01:20:11 +00:00
Devang Patel
2c1bba0c0c
Move ~Pass() from Pass.h into Pass.cpp
...
llvm-svn: 36498
2007-04-26 21:33:42 +00:00
Anton Korobeynikov
084cbbbe25
Unxfail tests
...
llvm-svn: 36497
2007-04-26 21:20:04 +00:00
Chris Lattner
8131ab7c0f
enable Anton's shift/and switch lowering stuff! It now passes ppc bootstrap
...
successfully! woohoo...
llvm-svn: 36496
2007-04-26 21:09:43 +00:00
Dan Gohman
a30eabdd6e
Fix PR1339 and CodeGen/X86/dollar-name.ll
...
llvm-svn: 36495
2007-04-26 21:07:05 +00:00
Bill Wendling
c8264ca457
Have MMX registers clobbered in x86-64 too.
...
llvm-svn: 36494
2007-04-26 21:06:48 +00:00
Devang Patel
e6354bd3ff
Delete Analysis Resolver.
...
llvm-svn: 36493
2007-04-26 21:06:41 +00:00
Dan Gohman
16259b4ff2
testcase for PR1339: http://llvm.org/PR1339
...
llvm-svn: 36492
2007-04-26 21:04:39 +00:00
Anton Korobeynikov
4ff20ff903
Add test to proper place. Also, XFAIL until ppc bootstrap will be ok.
...
llvm-svn: 36491
2007-04-26 20:49:05 +00:00
Anton Korobeynikov
d7ae7f1659
Fixx off-by-one bug, which prevents llvm-gcc bootstrap on ppc32
...
llvm-svn: 36490
2007-04-26 20:44:04 +00:00
Dan Gohman
2966c9072b
Update a comment to reflect recent changes in the type system.
...
llvm-svn: 36486
2007-04-26 19:43:14 +00:00
Dan Gohman
e131e3ac02
Fix a typo in a comment.
...
llvm-svn: 36485
2007-04-26 19:40:56 +00:00
Andrew Lenharth
a2f93b554d
An example for PR1362
...
llvm-svn: 36484
2007-04-26 19:28:33 +00:00
Evan Cheng
910c80851e
Rename findRegisterUseOperand to findRegisterUseOperandIdx to avoid confusion.
...
llvm-svn: 36483
2007-04-26 19:00:32 +00:00
Reid Spencer
1d48207f5b
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.
llvm-svn: 36482
2007-04-26 18:19:35 +00:00
Devang Patel
68f72b17f2
Use toplevel function pass manager as OnTheFly manager.
...
llvm-svn: 36481
2007-04-26 17:50:19 +00:00
Lauro Ramos Venancio
83fc4f3c3c
bugfix: remember that ResNode was declared.
...
llvm-svn: 36477
2007-04-26 17:03:22 +00:00
Zhou Sheng
6d207a761f
Add two test cases to cover apintification change.
...
llvm-svn: 36476
2007-04-26 16:44:48 +00:00
Zhou Sheng
3178736d50
Using APInt more efficiently.
...
llvm-svn: 36475
2007-04-26 16:42:07 +00:00
Jeff Cohen
476db10261
Rename identifier that GCC uses as a macro, breaking llvm-gcc build.
...
llvm-svn: 36474
2007-04-26 15:07:47 +00:00
Evan Cheng
ed23a1387e
Minor bug.
...
llvm-svn: 36473
2007-04-26 08:24:22 +00:00
Chris Lattner
e6e364c198
start code for writing out instructions. Separate BB#s from normal value
...
#'s.
llvm-svn: 36472
2007-04-26 05:53:54 +00:00
Chris Lattner
1ceecb5df4
start defining codes for instructions
...
llvm-svn: 36471
2007-04-26 05:53:04 +00:00