1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-24 19:52:54 +01:00
Commit Graph

63514 Commits

Author SHA1 Message Date
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
Matt Fleming
162726c305 Record a symbol's size which is needed for ELF symbol tables.
llvm-svn: 111170
2010-08-16 18:34:31 +00:00
Matt Fleming
68a31bf9c6 ELF entry size support.
Some ELF sections contain fixed-sized entries. Provide a way to record
the entry size of a section.

llvm-svn: 111169
2010-08-16 18:33:46 +00:00
Bob Wilson
985dab611d Rename sat_shift operand to shift_imm, in preparation for using it for other
instructions besides saturate instructions.  No functional changes.

llvm-svn: 111168
2010-08-16 18:27:34 +00:00
Jakob Stoklund Olesen
437fea641b Partially revert r111155. It looks like MSVC is calling an operator<() that
clang says is unused.

llvm-svn: 111167
2010-08-16 18:24:54 +00:00
Jim Grosbach
33f86ffe9f track local frame size in MFI, not local to the pass, since PEI needs it.
llvm-svn: 111164
2010-08-16 18:06:15 +00:00
Dan Gohman
cc19893826 Revert r111031. The way LLVM defines loop invariance, the property of an
expression being loop invariant is not equivalent to the property of
properly dominating the loop header.

Other optimizations have also made this optimization less important.

llvm-svn: 111160
2010-08-16 17:34:25 +00:00
Jakob Stoklund Olesen
c3183a6ad4 Remove unused functions.
llvm-svn: 111156
2010-08-16 17:18:20 +00:00
Jakob Stoklund Olesen
a3eb6a36c2 Remove unused functions.
llvm-svn: 111155
2010-08-16 17:18:18 +00:00
Bob Wilson
98641e5a51 Remove unused code.
llvm-svn: 111154
2010-08-16 17:06:03 +00:00
Bob Wilson
f174416619 Convert a test to use FileCheck.
llvm-svn: 111153
2010-08-16 17:05:27 +00:00
Dan Gohman
928cf9d77b Placate overzealous compiler warnings.
llvm-svn: 111152
2010-08-16 17:01:55 +00:00
Dan Gohman
013400a0f9 To create a copy of a SmallVector with an element removed from the
middle, copy the elements in two groups, rather than copying all the
elements and then doing an erase on the middle of the result. These
are SmallVectors, so we shouldn't expect to hit dynamic allocation
in the common case.

llvm-svn: 111151
2010-08-16 16:57:24 +00:00
Bob Wilson
0f37be0c05 Install Embedded builds into usr/local. Radar 8313723.
llvm-svn: 111149
2010-08-16 16:39:59 +00:00
Chris Lattner
e51188af11 silence a vc2010 warning: " result of 32-bit shift implicitly converted to
64 bits (was 64-bit shift intended?)", pointed out by 'nobled' on llvmdev

llvm-svn: 111148
2010-08-16 16:35:20 +00:00