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

50496 Commits

Author SHA1 Message Date
Jakob Stoklund Olesen
0b361622ff Clean up the public interface of RegScavenger.
Remove unused methods and make others private.

llvm-svn: 79194
2009-08-16 17:41:20 +00:00
Jakob Stoklund Olesen
fcfe355efd Be more clever about regclasses in ScheduleDAGSDNodes::EmitCopyFromReg.
If two uses of a CopyFromReg want different regclasses, first try a common
sub-class, then fall back on the copy emitted in AddRegisterOperand. There is
no need for an assert here. The cross-class joiner usually cleans up nicely.

llvm-svn: 79193
2009-08-16 17:40:59 +00:00
Benjamin Kramer
a8760e3e5a Fix use after free in Thumb2SizeReduction (PR4707). A MachineInstr was used after erasure.
llvm-svn: 79189
2009-08-16 11:56:42 +00:00
Bill Wendling
ee380b1dd2 Styalistic and format changes. No functionality change.
llvm-svn: 79187
2009-08-16 11:00:26 +00:00
Benjamin Kramer
ebcc5c8765 Fix the MSVC build again.
llvm-svn: 79186
2009-08-16 09:44:27 +00:00
Oscar Fuentes
3e0998e270 CMake: Hopefully this will fix the build on VS. I can't replicate the
failure with VS 9.0, nmake and cmake 2.6.4. The buildbot output does
not show the patch level of cmake, it just says 2.6.

Sadly, parallel builds are broken due to recent changes on LLVM Target
libraries and its auxiliaries (TargetInfo, AsmPrinter, AsmParser). I
have a patch for stablishing the correct dependencies, but cmake is
buggy and generates makefiles that can't handle them.

llvm-svn: 79180
2009-08-16 07:44:02 +00:00
Oscar Fuentes
5608fb2893 CMake: Revert r79144. It reverted a change necessary for correct
parallel builds.

llvm-svn: 79177
2009-08-16 05:16:43 +00:00
Chris Lattner
76b09f600c add support for external symbols + X86::MOVPC32r.
llvm-svn: 79175
2009-08-16 04:28:14 +00:00
Eli Friedman
ca19f19760 Fix for PR3016: detect the tricky case, where there are
unfoldable references to a PHI node in the block being folded, and disable
the transformation in that case.  The correct transformation of such PHI
nodes depends on whether BB dominates Succ, and dominance is expensive 
to compute here.  (Alternatively, it's possible to check whether any 
uses are live, but that's also essentially a dominance calculation. 
Another alternative is to use reg2mem, but it probably isn't a good idea to
use that in simplifycfg.)

Also, remove some incorrect code from CanPropagatePredecessorsForPHIs 
which is made unnecessary with this patch: it didn't consider the case 
where a PHI node in BB has multiple uses.

llvm-svn: 79174
2009-08-16 04:23:49 +00:00
Chris Lattner
ca89ccb1dd implement support for lowering references to global addresses. For example, we now
can asmprint:

NEW: 	movl	"L___stack_chk_guard$non_lazy_ptr", %eax
OLD: 	movl	L___stack_chk_guard$non_lazy_ptr, %eax

where 'new' is coming out of the MCInst version of the printer.

llvm-svn: 79170
2009-08-16 03:12:25 +00:00
Chris Lattner
af83ac2ba5 more formatting improvements, no functionality change.
llvm-svn: 79167
2009-08-16 02:45:18 +00:00
Chris Lattner
9a017d13c8 code formatting improvements, no functionality change.
llvm-svn: 79165
2009-08-16 02:36:40 +00:00
Chris Lattner
b2791c888d when emitting errors about CHECK-NEXT directives, show the line that the
CHECK-NEXT is on.

llvm-svn: 79164
2009-08-16 02:22:31 +00:00
Erick Tryzelaar
175dd821cc Add an llvm-c function that lets you insert an instruction with a name.
llvm-svn: 79163
2009-08-16 02:20:57 +00:00
Erick Tryzelaar
ed8dffc10b Expose most of the Constant creation functions to ocaml.
llvm-svn: 79162
2009-08-16 02:20:37 +00:00
Erick Tryzelaar
57dcc1e1a3 Expose most of the IRBuilder functionality to ocaml.
llvm-svn: 79161
2009-08-16 02:20:24 +00:00
Erick Tryzelaar
c0815ef591 Expose most of the Constant creation functions to llvm-c.
llvm-svn: 79160
2009-08-16 02:20:12 +00:00
Erick Tryzelaar
a439c22dbf Expose most of the rest of IRBuilder's functions to llvm-c.
llvm-svn: 79159
2009-08-16 02:19:59 +00:00
Erick Tryzelaar
532ab606ff Add more casts to the IRBuilder.
llvm-svn: 79158
2009-08-16 02:19:46 +00:00
Evan Cheng
99a029d217 Needs to check whether unaligned load / store of i64 is legal here.
llvm-svn: 79150
2009-08-15 23:41:42 +00:00
Bill Wendling
29ea31a8ad Remove <iostream>.
llvm-svn: 79146
2009-08-15 22:28:08 +00:00
Benjamin Kramer
399272ce96 Revert 78996. It was breaking MSVC builds.
llvm-svn: 79144
2009-08-15 21:57:01 +00:00
Dan Gohman
82430f54ec Mingw also doesn't have st_blksize.
llvm-svn: 79142
2009-08-15 21:41:03 +00:00
Eli Friedman
d61a2e81bc Fix test on Linux.
llvm-svn: 79140
2009-08-15 21:28:17 +00:00
Bill Wendling
696d0388e9 An overhaul of the exception handling code. This is arguably more correct than
what was there before. In "no FP mode", we weren't generating labels and unwind
table entries after each "push" instruction. While more than likely "okay", it's
not technically correct. The major thing was that the ordering of when to define
a new CFA register and at what offset wasn't correct. This would cause the
exception handling to fail in ways most miserable to users.

I also cleaned up some code a bit. There's one function which has a "return" at
the beginning, so it's never used. Should I just remove it? :-)

llvm-svn: 79139
2009-08-15 21:27:32 +00:00
Bill Wendling
962adec4ee Reapply r79127. It was fixed by d0k.
llvm-svn: 79136
2009-08-15 21:21:19 +00:00
Bill Wendling
bfebbb6477 Revert r79127. It was causing compilation errors.
llvm-svn: 79135
2009-08-15 21:14:01 +00:00
Benjamin Kramer
5c54156e82 Don't try to get the context from an erased Instruction.
llvm-svn: 79134
2009-08-15 21:07:49 +00:00
Benjamin Kramer
b5771e5e21 Unbreak build. Evan, please make sure my changes are correct.
llvm-svn: 79133
2009-08-15 20:46:16 +00:00
Nick Lewycky
de61ef6c5e SSI construction should just go ahead and ignore instructions in unreachable
blocks.

llvm-svn: 79132
2009-08-15 20:12:18 +00:00
Bill Wendling
e60376e857 Fix validation errors.
llvm-svn: 79131
2009-08-15 20:08:04 +00:00
Bill Wendling
038bd2c69e Fix validation errors.
llvm-svn: 79130
2009-08-15 20:07:42 +00:00
Evan Cheng
5d841097a9 Change allowsUnalignedMemoryAccesses to take type argument since some targets
support unaligned mem access only for certain types. (Should it be size
instead?)

ARM v7 supports unaligned access for i16 and i32, some v6 variants support it
as well.

llvm-svn: 79127
2009-08-15 19:23:44 +00:00
Chris Lattner
909ce77a58 wrap to 80 cols
llvm-svn: 79124
2009-08-15 18:33:10 +00:00
Chris Lattner
d910c3a30e implement support for CHECK-NEXT: in filecheck.
llvm-svn: 79123
2009-08-15 18:32:21 +00:00
Jakob Stoklund Olesen
7f4ef2d59a Refine EarlyClobber assert in register scavenger.
It is legal for an inline asm operand to use an earlyclobber register if the
use operand is tied to the earlyclobber operand. The issue is discussed here:

  http://gcc.gnu.org/ml/gcc/1999-04n/msg00431.html

We should perhaps let only the machine code verifier worry about these finer
details. EarlyClobber operands are not really interesting to the scavenger.

This fixes PR4528 for the third time.

llvm-svn: 79122
2009-08-15 18:16:58 +00:00
Chris Lattner
a2ab7de470 simplify some code.
llvm-svn: 79121
2009-08-15 18:00:42 +00:00
Chris Lattner
2942a8852f rewrite FindStringInBuffer to use an explicit loop instead of
trying to wrap strstr which is just too inconvenient.  Make it
use a StringRef to avoid ".c_str()" calls.

llvm-svn: 79120
2009-08-15 17:53:12 +00:00
Chris Lattner
b1de5e438a Instead of using an std::pair, use a custom struct.
llvm-svn: 79119
2009-08-15 17:41:04 +00:00
Chris Lattner
56dc61a487 specify a target triple so global variable manglings are consistent etc.
llvm-svn: 79118
2009-08-15 17:35:05 +00:00
Chris Lattner
adc768c073 convert to filecheck.
llvm-svn: 79117
2009-08-15 17:28:09 +00:00
Chris Lattner
27345be0c7 rename this test to sse2.ll
llvm-svn: 79116
2009-08-15 17:24:09 +00:00
Chris Lattner
43cfb4db61 merge a bunch more sse3 tests into sse3.ll
llvm-svn: 79115
2009-08-15 17:21:44 +00:00
Chris Lattner
34e10616f5 convert test to filecheck format.
llvm-svn: 79114
2009-08-15 17:05:03 +00:00
Chris Lattner
58942aabef rename test
llvm-svn: 79113
2009-08-15 17:01:44 +00:00
Chris Lattner
83d747a703 this is a test for sse3, simplify it.
llvm-svn: 79112
2009-08-15 17:01:19 +00:00
Chris Lattner
07186e7840 the .eh_frame sections we generate need to be writable (which
is why they are datarel).  This should fix PR4724, and is fallout
from r78890.

llvm-svn: 79111
2009-08-15 16:54:02 +00:00
Chris Lattner
42ae1585aa document filecheck.
llvm-svn: 79110
2009-08-15 16:51:06 +00:00
Chris Lattner
23980ad923 fix pasto noticed by Jakub
llvm-svn: 79109
2009-08-15 16:18:56 +00:00
Nicolas Geoffray
572b4e6cb3 Use the new API for creating an OpaqueType.
llvm-svn: 79107
2009-08-15 15:41:32 +00:00