1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-10-30 07:22:55 +01:00
Commit Graph

22771 Commits

Author SHA1 Message Date
Chris Lattner
f9e38897e3 Assert invariants
llvm-svn: 26073
2006-02-09 02:25:42 +00:00
Chris Lattner
309539fb45 Require an alignment.
llvm-svn: 26072
2006-02-09 02:24:25 +00:00
Chris Lattner
86d5e100d2 Make MachineConstantPool entries alignments explicit
llvm-svn: 26071
2006-02-09 02:23:13 +00:00
Chris Lattner
79b2108a41 Always pass in an alignment.
llvm-svn: 26070
2006-02-09 02:19:16 +00:00
Chris Lattner
3ff29575b8 provide an explicit alignment for cp entries
llvm-svn: 26069
2006-02-09 02:15:30 +00:00
Chris Lattner
70865ea43f Add a comment: value is log2
llvm-svn: 26068
2006-02-09 02:10:15 +00:00
Evan Cheng
521e5a1bfe Change Select() from
SDOperand Select(SDOperand N);
to
void Select(SDOperand &Result, SDOperand N);

llvm-svn: 26067
2006-02-09 00:37:58 +00:00
Chris Lattner
2e1a495967 Darwin doesn't support #APP/#NO_APP
llvm-svn: 26066
2006-02-08 23:42:22 +00:00
Chris Lattner
6556f15ad8 Add support for assembler directives that wrap inline asm
llvm-svn: 26065
2006-02-08 23:41:56 +00:00
Chris Lattner
47ef931412 Rename BSel -> PPCBSel for the benefit of doxygen users.
Move the methods out of line.
Remove unused Debug.h stuff.
Teach getNumBytesForInstruction to know the size of an inline asm.

llvm-svn: 26064
2006-02-08 19:33:26 +00:00
Jim Laskey
8b27e1cdb8 Disable this test for the time being as debug is brought up to speed.
llvm-svn: 26063
2006-02-08 18:17:06 +00:00
Chris Lattner
9cc9988279 add a simple optimization
llvm-svn: 26062
2006-02-08 17:47:22 +00:00
Chris Lattner
bd0325a506 Mention that delta can be used to reduce some Front-end problems.
Patch by Marco Matthies, thanks!

llvm-svn: 26061
2006-02-08 17:01:37 +00:00
Chris Lattner
73022962e9 Add SRoA to the lexicon. Patch by Marco Matthies!
llvm-svn: 26060
2006-02-08 16:59:49 +00:00
Evan Cheng
bde468bac5 Added options -cflag, -cxxflags, and -ldflags to override the default C
compilation, C++ compilation, and linker options.
e.g. This is the options I use for testing on my x86 iMac:
nice ./NightlyTest.pl -release -cflags "-Os -DNDEBUG -fomit-frame-pointer" -cxxflags "-Os -DNDEBUG -finline-functions -felide-constructors -fomit-frame-pointer"

llvm-svn: 26057
2006-02-08 09:08:06 +00:00
Chris Lattner
f2caea42c9 Simplify some code, reducing calls to MaskedValueIsZero. Implement a minor
optimization where we reduce the number of bits in AND masks when possible.

llvm-svn: 26056
2006-02-08 07:34:50 +00:00
Evan Cheng
c66d006526 Remove -pedantic. It no longer works.
llvm-svn: 26055
2006-02-08 07:28:22 +00:00
Chris Lattner
560429667e more email -> README moving
llvm-svn: 26054
2006-02-08 07:12:07 +00:00
Chris Lattner
86d1dcf613 Emit the 'mr' pseudoop for easier reading.
llvm-svn: 26053
2006-02-08 06:56:40 +00:00
Chris Lattner
a4b6082b7a Add some random notes, not high-prio
llvm-svn: 26052
2006-02-08 06:52:06 +00:00
Chris Lattner
881c8c12ff Move emails from nate into public places
llvm-svn: 26051
2006-02-08 06:43:51 +00:00
Chris Lattner
8359f9fbbb Use EraseInstFromFunction in a few cases to put the uses of the removed
instruction onto the worklist (in case they are now dead).

Add a really trivial local DSE implementation to help out bitfield code.
We now fold this:

struct S {
    unsigned char a : 1, b : 1, c : 1, d : 2, e : 3;
    S();
};

S::S() : a(0), b(0), c(1), d(0), e(6) {}

to this:

void %_ZN1SC1Ev(%struct.S* %this) {
entry:
        %tmp.1 = getelementptr %struct.S* %this, int 0, uint 0
        store ubyte 38, ubyte* %tmp.1
        ret void
}

much earlier (in gccas instead of only in gccld after DSE runs).

llvm-svn: 26050
2006-02-08 03:25:32 +00:00
Chris Lattner
09ae00eba1 Implement some more interesting select sccp cases. This implements:
test/Regression/Transforms/SCCP/select.ll

llvm-svn: 26049
2006-02-08 02:38:11 +00:00
Chris Lattner
0f370256ad new testcase for more interesting select sccp cases
llvm-svn: 26048
2006-02-08 02:37:40 +00:00
Chris Lattner
50f604c041 Compile this:
xori r6, r2, 1
        rlwinm r6, r6, 0, 31, 31
        cmpwi cr0, r6, 0
        bne cr0, LBB1_3 ; endif

to this:

        rlwinm r6, r2, 0, 31, 31
        cmpwi cr0, r6, 0
        beq cr0, LBB1_3 ; endif

llvm-svn: 26047
2006-02-08 02:13:15 +00:00
Chris Lattner
4a48539377 Add some happy helper methods.
llvm-svn: 26046
2006-02-08 02:05:45 +00:00
Chris Lattner
57aca014c2 Fix a problem in my patch yesterday, causing a miscompilation of 176.gcc
llvm-svn: 26045
2006-02-08 01:20:23 +00:00
Evan Cheng
de20d3fb32 Fixed a local common symbol bug.
llvm-svn: 26044
2006-02-07 23:32:58 +00:00
Evan Cheng
a505719b8a For ELF, .comm takes alignment value as the optional 3rd argument. It must be
specified in bytes.

llvm-svn: 26043
2006-02-07 21:54:08 +00:00
Chris Lattner
abaa15898f Implement getConstraintType for PPC.
llvm-svn: 26042
2006-02-07 20:16:30 +00:00
Chris Lattner
478eb50b79 getConstraintType should be virtual.
llvm-svn: 26041
2006-02-07 20:13:44 +00:00
Chris Lattner
a3f2d4c4f2 Fix Transforms/InstCombine/2006-02-07-SextZextCrash.ll
llvm-svn: 26040
2006-02-07 19:07:40 +00:00
Chris Lattner
4a327829c9 new testcase that caused instcombine to crash on 176.gcc last night.
llvm-svn: 26039
2006-02-07 19:07:25 +00:00
Evan Cheng
15369d0b89 Darwin ABI issues: weak, linkonce, etc. dynamic-no-pic support is complete.
Also fixed a function stub bug. Added weak and linkonce support for
x86 Linux.

llvm-svn: 26038
2006-02-07 08:38:37 +00:00
Evan Cheng
a7d31e53e8 Remind myself to add PIC and static asm printer support.
llvm-svn: 26037
2006-02-07 08:35:44 +00:00
Chris Lattner
9a35257363 Generalize MaskedValueIsZero into a ComputeMaskedNonZeroBits function, which
is just as efficient as MVIZ and is also more general.

Fix a few minor bugs introduced in recent patches

llvm-svn: 26036
2006-02-07 08:05:22 +00:00
Chris Lattner
c1a185741c Make MaskedValueIsZero take a uint64_t instead of a ConstantIntegral as a
mask.  This allows the code to be simpler and more efficient.

Also, generalize some of the cases in MVIZ a bit, making it slightly more aggressive.

llvm-svn: 26035
2006-02-07 07:27:52 +00:00
Chris Lattner
6318e7b7b7 Use Type::getIntegralTypeMask() to simplify some code
llvm-svn: 26034
2006-02-07 07:00:41 +00:00
Chris Lattner
a0d7868722 Implement the beginnings of a facility for simplifying expressions based on
'demanded bits', inspired by Nate's work in the dag combiner.  This isn't
complete, but needs to unrelated instcombiner changes to continue.

llvm-svn: 26033
2006-02-07 06:56:34 +00:00
Chris Lattner
0c8352628d add a new Type::getIntegralTypeMask() method, which is useful for clients that
want to do bitwise inspection of integer types.

llvm-svn: 26032
2006-02-07 06:17:10 +00:00
Jeff Cohen
e66383eb06 The interpreter assumes that the caller of runFunction() must be lli, and
therefore the function being called must be a main() returning an int.  The
consequences when these assumptions are false are not good, so don't assume
them.

llvm-svn: 26031
2006-02-07 05:29:44 +00:00
Jeff Cohen
909ee648c7 Teach the interpreter to handle global variables that are added to a module after
interpretation has begun.  The JIT already handles this situation correctly, and
the interpreter can already handle new functions being added.

llvm-svn: 26030
2006-02-07 05:11:57 +00:00
Jeff Cohen
e2ef48c356 Fix some truncation warnings.
llvm-svn: 26029
2006-02-07 03:34:35 +00:00
Chris Lattner
0c9ddf7346 fix an error compiling with -pedantic
llvm-svn: 26028
2006-02-07 01:12:49 +00:00
Chris Lattner
50af3c6eb7 Add the simple PPC integer constraints
llvm-svn: 26027
2006-02-07 00:47:13 +00:00
Evan Cheng
0ff5d88abd Hoist all SDOperand declarations within a Select_{opcode}() to the top level
to reduce stack memory usage. This is intended to work around the gcc bug.

llvm-svn: 26026
2006-02-07 00:37:41 +00:00
Chris Lattner
da4bd5c64e Eliminate the printCallOperand method, using a 'call' modifier on
printOperand instead.

llvm-svn: 26025
2006-02-06 23:41:19 +00:00
Chris Lattner
cf81cdcf95 Add support for modifier strings in machine instr descriptions. This allows
us to avoid creating lots of "Operand" types with different printers, instead
we can fold several together and use modifiers.  For example, we can now use:

${target:call} to say that the operand should be printed like a 'call' operand.

llvm-svn: 26024
2006-02-06 23:40:48 +00:00
Chris Lattner
232dd5c069 Simplify the variant handling code, no functionality change.
llvm-svn: 26023
2006-02-06 22:43:28 +00:00
Chris Lattner
b6fae6bad7 Change prototype
llvm-svn: 26022
2006-02-06 22:18:19 +00:00