Jakob Stoklund Olesen
74db02758b
Don't call Predicate_* methods directly from Sparc target.
...
Modernize predicates a bit.
The Predicate_* methods are not used by TableGen any longer. They are only
emitted for the sake of legacy code.
llvm-svn: 111263
2010-08-17 18:17:12 +00:00
Jim Grosbach
4597437c58
Add hook to examine an instruction referencing a frame index to determine
...
whether to allocate a virtual frame base register to resolve the frame
index reference in it. Implement a simple version for ARM to aid debugging.
In LocalStackSlotAllocation, scan the function for frame index references
to local frame indices and ask the target whether to allocate virtual
frame base registers for any it encounters. Purely infrastructural for
debug output. Next step is to actually allocate base registers, then add
intelligent re-use of them.
rdar://8277890
llvm-svn: 111262
2010-08-17 18:13:53 +00:00
Jim Grosbach
b321adf3af
explicitly handle no-op cases for clarity. Fixes clang warning.
...
llvm-svn: 111260
2010-08-17 18:00:41 +00:00
Benjamin Kramer
3bc7de0605
Use the correct entry size for relocation entries, from Roman Divacky.
...
llvm-svn: 111259
2010-08-17 17:56:13 +00:00
Evan Cheng
4223d274ca
Move the decision logic whether it's a good idea to split a critical edge to clients. Also fixed an erroneous check. An edge is only a back edge when the from and to blocks are in the same loop.
...
llvm-svn: 111256
2010-08-17 17:43:50 +00:00
Dan Gohman
e26025ddd0
When rotating loops, put the original header at the bottom of the
...
loop, making the resulting loop significantly less ugly. Also, zap
its trivial PHI nodes, since it's easy.
llvm-svn: 111255
2010-08-17 17:39:21 +00:00
Jim Grosbach
4cf3acbde6
remove trailing whitespace
...
llvm-svn: 111254
2010-08-17 17:37:22 +00:00
Benjamin Kramer
cc741eccfa
Differentiate between RELA and REL relocations, from Roman Divacky.
...
llvm-svn: 111252
2010-08-17 17:30:07 +00:00
Bob Wilson
e382fce916
Change ARM PKHTB and PKHBT instructions to use a shift_imm operand to avoid
...
printing "lsl #0 ". This fixes the remaining parts of pr7792. Make
corresponding changes for encoding/decoding these instructions.
llvm-svn: 111251
2010-08-17 17:23:19 +00:00
Evan Cheng
677a57e76a
Fix debug message.
...
llvm-svn: 111250
2010-08-17 17:15:14 +00:00
Chris Lattner
c61aa15b46
add some 's to a pre to avoid newlines being eaten
...
and the formatting being thrown off. I admit to not knowing
what is going on here.
llvm-svn: 111249
2010-08-17 17:13:42 +00:00
Dan Gohman
aec27f6889
Use the getUniquePredecessor() utility function, instead of doing
...
what it does manually.
llvm-svn: 111248
2010-08-17 17:07:02 +00:00
Benjamin Kramer
2bf444b7d4
One baby step towards i386 ELF, from Roman Divacky.
...
llvm-svn: 111247
2010-08-17 17:02:29 +00:00
Chris Lattner
a556264e06
fix emacs language spec's, patch by Edmund Grimley-Evans!
...
llvm-svn: 111241
2010-08-17 16:20:04 +00:00
Nick Lewycky
510dd18c6f
When creating a JIT, try to load the program so that we can resolve symbols
...
against it. This affects Windows.
llvm-svn: 111240
2010-08-17 16:19:18 +00:00
Benjamin Kramer
3a071817da
Revert r111230, we have to find a better place for the host-specific code.
...
llvm-svn: 111232
2010-08-17 15:50:23 +00:00
Chris Lattner
f403684a4d
Fix failure of unittests/ExecutionEngine/JIT/MultiJITTest.cpp on
...
cygwin when built with ENABLE_SHARED=1. Patch by NAKAMURA Takumi!
llvm-svn: 111231
2010-08-17 15:42:43 +00:00
Benjamin Kramer
387a736204
Micro-optimize MCObjectWriter to do a byteswap if necessary and then write the
...
whole integer to the stream instead of doing byte-sized writes.
llvm-svn: 111230
2010-08-17 13:55:45 +00:00
Benjamin Kramer
1b8bcfbc98
There is this new "LLVM" compiler that supports __builtin_bswap but thinks it's gcc 4.2.
...
llvm-svn: 111228
2010-08-17 11:45:38 +00:00
Bob Wilson
6239dc42c6
Allow more cases of undef shuffle indices and add tests for them.
...
llvm-svn: 111226
2010-08-17 05:54:34 +00:00
Evan Cheng
908b65c371
Add an option to disable codegen prepare critical edge splitting. In theory, PHI elimination is already doing all (most?) of the splitting needed. But machine-licm and machine-sink seem to miss some important optimizations when splitting is disabled.
...
llvm-svn: 111224
2010-08-17 01:34:49 +00:00
Eric Christopher
2bf87a1c77
Fix typo.
...
llvm-svn: 111223
2010-08-17 01:30:33 +00:00
Eric Christopher
9a8050c4e1
Copy over some overridden MI wrappers for ARM fast-isel. This is where
...
we're adding predicates and optional defs to the MachineInstrs.
llvm-svn: 111222
2010-08-17 01:25:29 +00:00
Evan Cheng
0163d059e4
PHI elimination should not break back edge. It can cause some significant code placement issues. rdar://8263994
...
good:
LBB0_2:
mov r2, r0
. . .
mov r1, r2
bne LBB0_2
bad:
LBB0_2:
mov r2, r0
. . .
@ BB#3:
mov r1, r2
b LBB0_2
llvm-svn: 111221
2010-08-17 01:20:36 +00:00
Eric Christopher
7e10a7fd22
Remove predicate workaround, we're going to require that predicate
...
and optional def operands are handled in the backend support.
llvm-svn: 111220
2010-08-17 01:18:37 +00:00
Eric Christopher
8a68f2fc40
Make arm fast-isel possible to enable via command line.
...
llvm-svn: 111219
2010-08-17 00:46:57 +00:00
Benjamin Kramer
3acf387e2d
Try to silence a overeager GCC warning.
...
llvm-svn: 111214
2010-08-17 00:33:24 +00:00
Benjamin Kramer
41deb334b5
A round of minor cleanups for ELFObjectWriter.
...
llvm-svn: 111213
2010-08-17 00:00:46 +00:00
Bob Wilson
2c5e6a9214
Add a testcase for svn 111208.
...
llvm-svn: 111212
2010-08-16 23:44:29 +00:00
Owen Anderson
803f9320fa
Fix another iterator invalidation that caused a *really* nasty miscompilation in 403.gcc.
...
llvm-svn: 111210
2010-08-16 23:42:33 +00:00
Bob Wilson
1e40f2351c
Ignore undef shuffle indices when checking for a VTRN shuffle. Radar 8290937.
...
llvm-svn: 111208
2010-08-16 23:37:17 +00:00
Jim Grosbach
9e252e854d
tidy up. remove unused local.
...
llvm-svn: 111206
2010-08-16 23:26:09 +00:00
Benjamin Kramer
70e0faed21
Silence warnings and simplify code. Eliminate a 32/64 bit portability issue.
...
llvm-svn: 111201
2010-08-16 23:00:12 +00:00
Dan Gohman
72106f71dc
The plural of analysis is analyses.
...
llvm-svn: 111200
2010-08-16 22:57:28 +00:00
Dan Gohman
b09e2e1be4
Make dumpPassStructure be a PMDataManager abstraction, rather than
...
a Pass abstraction, since that's the level it's actually used at.
Rename Pass' dumpPassStructure to dumpPass.
This eliminates an awkward use of getAsPass() to convert a PMDataManager*
into a Pass* just to permit a dumpPassStructure call.
llvm-svn: 111199
2010-08-16 22:45:12 +00:00
Jim Grosbach
ea414d3999
Better handle alignment requirements for local objects in pre-regalloc frame
...
mapping. Have the local block track its alignment requirement, and then
apply that when the block itself is allocated. Previously, offsets could
get adjusted in PEI to be different, relative to one another, than the
block allocation thought they would be, which defeats the point of doing
the allocation this way. Continuing rdar://8277890
llvm-svn: 111197
2010-08-16 22:30:41 +00:00
Bob Wilson
d662e8cd02
Generalize a pattern for PKHTB: an SRL of 16-31 bits will guarantee
...
that the high halfword is zero. The shift need not be exactly 16 bits.
llvm-svn: 111196
2010-08-16 22:26:55 +00:00
Bob Wilson
b776a55df5
Convert test to FileCheck.
...
llvm-svn: 111195
2010-08-16 22:21:13 +00:00
Dan Gohman
6bc71a2a20
Make some of PMTopLevelManager's members non-public. In particular,
...
make its constructor protected.
llvm-svn: 111193
2010-08-16 22:03:47 +00:00
Dan Gohman
dfd828dd87
Remove redundant inline keywords.
...
llvm-svn: 111192
2010-08-16 21:57:30 +00:00
Dan Gohman
05fbd723d5
Eliminate the TopLevelManagerType enum; instead, just make
...
PMTopLevelManager's constructor take a PMDataManager *, which already
provides the needed abstraction support.
llvm-svn: 111189
2010-08-16 21:38:42 +00:00
Eli Friedman
515b81a494
Comment out some broken/unused/useless instructions which mess up disassembly.
...
llvm-svn: 111185
2010-08-16 21:18:51 +00:00
Eli Friedman
39484fda25
Fixes for generation of ELF relocations. Patch by Roman Divacky.
...
llvm-svn: 111183
2010-08-16 21:17:09 +00:00
Eli Friedman
b9707bb261
Don't attempt to SimplifyShortMoveForm in 64-bit mode.
...
llvm-svn: 111182
2010-08-16 21:03:32 +00:00
Eli Friedman
fb8b05726f
Until uleb/sleb are MC-ized, add a hack to make them work with ELF object
...
emission.
llvm-svn: 111177
2010-08-16 20:08:40 +00:00
Eli Friedman
d2c0d2d0bb
Fix a few warnings in and detabify MCELFStreamer and ELFObjectWriter.
...
llvm-svn: 111175
2010-08-16 19:15:06 +00:00
Matt Fleming
8183e01389
Add ELF ObjectWriter and Streamer support.
...
I forgot to add these files in commit 111172.
llvm-svn: 111174
2010-08-16 18:57:57 +00:00
Matt Fleming
0078681411
Hookup ELF support for X86.
...
llvm-svn: 111173
2010-08-16 18:36:14 +00:00
Matt Fleming
e381e308f2
Add ELF ObjectWriter and Streamer support.
...
llvm-svn: 111172
2010-08-16 18:35:43 +00:00
Matt Fleming
5fc461afc4
Layout helper function.
...
Introduce a helper method to add a section to the end of a layout. This
will be used by the ELF ObjectWriter code to add the metadata sections
(symbol table, etc) to the end of an object file.
llvm-svn: 111171
2010-08-16 18:35:06 +00:00