Christopher Lamb
e92cba4535
Regenerate.
...
llvm-svn: 44859
2007-12-11 09:02:08 +00:00
Christopher Lamb
54dd24c2a7
Implement address space attribute for LLVM pointer types. Address spaces are
...
regions of memory that have a target specific relationship, as described in the
Embedded C Technical Report.
This also implements the 2007-12-11-AddressSpaces test,
which demonstrates how address space attributes can be used in LLVM IR.
In addition, this patch changes the bitcode signature for stores (in a backwards
compatible manner), such that the pointer type, rather than the pointee type, is
encoded. This permits type information in the pointer (e.g. address space) to be
preserved for stores.
LangRef updates are forthcoming.
llvm-svn: 44858
2007-12-11 08:59:05 +00:00
Chris Lattner
8e6a8f984c
Teach VMCore to constant fold shufflevectors with constant operands.
...
This allows us to compile:
#include <emmintrin.h>
typedef __m128i VSInt16;
typedef short vSInt16 __attribute__ ((__vector_size__ (16)));
VSInt16 t3() {
return (VSInt16)((vSInt16)_mm_set1_epi16(6518));
}
into:
_t3:
movaps LCPI1_0, %xmm0
ret
instead of:
_t3:
movl $6518, %eax
movd %eax, %xmm0
pextrw $0, %xmm0, %eax
xorps %xmm0, %xmm0
pinsrw $0, %eax, %xmm0
punpcklwd %xmm0, %xmm0
pshufd $0, %xmm0, %xmm0
ret
llvm-svn: 44856
2007-12-11 07:49:37 +00:00
Chris Lattner
6a6b3fb62b
Implement constant folding if vector<->vector bitcasts where the number
...
of source/dest elements changes. This implements
test/Transforms/InstCombine/bitcast-vector-fold.ll
llvm-svn: 44855
2007-12-11 07:29:44 +00:00
Reid Spencer
0b1df1d3da
Don't have APInt.cpp depend upon DerivedTypes.h. This helps with splitting the
...
Support libraries separately into their own module.
llvm-svn: 44852
2007-12-11 06:53:58 +00:00
Anton Korobeynikov
3d23737c5f
Add first and really dirty version of generic Trie structure
...
llvm-svn: 44851
2007-12-11 06:53:44 +00:00
Chris Lattner
5c6399eee6
significantly simplify some code, no functionality change.
...
llvm-svn: 44850
2007-12-11 06:07:39 +00:00
Chris Lattner
e8ea0374ac
refactor some code, no functionality change.
...
llvm-svn: 44849
2007-12-11 05:55:02 +00:00
Evan Cheng
303417d242
Switch over to MachineLoopInfo.
...
llvm-svn: 44838
2007-12-11 02:09:15 +00:00
Evan Cheng
f54030231e
Pretty print shuffle mask operand.
...
llvm-svn: 44837
2007-12-11 02:08:35 +00:00
Evan Cheng
4fbf459549
- Improved v8i16 shuffle lowering. It now uses pshuflw and pshufhw as much as
...
possible before resorting to pextrw and pinsrw.
- Better codegen for v4i32 shuffles masquerading as v8i16 or v16i8 shuffles.
- Improves (i16 extract_vector_element 0) codegen by recognizing
(i32 extract_vector_element 0) does not require a pextrw.
llvm-svn: 44836
2007-12-11 01:46:18 +00:00
Nate Begeman
a55a67ae91
x86 doesn't actually want to custom lower v3i32
...
llvm-svn: 44835
2007-12-11 01:41:33 +00:00
Gordon Henriksen
7843c16f31
CollectorMetadata and Collector are rejiggered to get along with
...
per-function collector model. Collector is now the factory for
CollectorMetadata, so the latter may be subclassed.
llvm-svn: 44827
2007-12-11 00:30:17 +00:00
Gordon Henriksen
a87d72b102
Project file maintenance.
...
llvm-svn: 44826
2007-12-11 00:29:16 +00:00
Chris Lattner
2945c46e93
Move TargetData::hostIsLittleEndian out of line, which means we
...
don't have to #include config.h in it. #including config.h breaks
other projects that have their own autoconf stuff and try to #include
the llvm headers. One obscure example is llvm-gcc.
llvm-svn: 44825
2007-12-11 00:28:59 +00:00
Gordon Henriksen
2b0eed278b
Adding Ocaml bindings for the bitreader as requested by Sarah
...
Thompson. Usage should be something like this:
open Llvm
open Llvm_bitreader
match read_bitcode_file fn with
| Bitreader_failure msg ->
prerr_endline msg
| Bitreader_success m ->
...;
dispose_module m
Compile with: ocamlc llvm.cma llvm_bitreader.cma
ocamlopt llvm.cmxa llvm_bitreader.cmxa
llvm-svn: 44824
2007-12-11 00:20:48 +00:00
Anton Korobeynikov
21ade5880b
Hey, English is not my native language :)
...
llvm-svn: 44820
2007-12-10 23:10:20 +00:00
Anton Korobeynikov
77eb5e649d
Clarify the need of CFI() stuff
...
llvm-svn: 44819
2007-12-10 23:08:35 +00:00
Anton Korobeynikov
a6b0f7e244
Provide convenient way to disable CFI stuff for old/broken assemblers.
...
Use it for Darwin.
llvm-svn: 44818
2007-12-10 23:04:38 +00:00
Chris Lattner
d2265b45ae
Fix PR1850 by removing an unsafe transformation from VMCore/ConstantFold.cpp.
...
Reimplement the xform in Analysis/ConstantFolding.cpp where we can use
targetdata to validate that it is safe. While I'm in there, fix some const
correctness issues and generalize the interface to the "operand folder".
llvm-svn: 44817
2007-12-10 22:53:04 +00:00
Ted Kremenek
9a698a1da7
Added two bounds checks to the BitVector class to detect
...
out-of-bounds bit accesses. The checks are only performed
in a Debug build.
llvm-svn: 44815
2007-12-10 22:28:35 +00:00
Chris Lattner
ea9ac34d18
split isBinaryOp into a static and member version.
...
llvm-svn: 44814
2007-12-10 22:18:53 +00:00
John Criswell
fa06f0203b
Fix some wording.
...
llvm-svn: 44810
2007-12-10 20:26:29 +00:00
Chuck Rose III
900a13e82c
Add StringPool + new CodeGen files to win32 build
...
llvm-svn: 44805
2007-12-10 19:31:09 +00:00
Chris Lattner
8a72a7d586
Disable cfi directives for now, darwin does't support them.
...
These should probably be something like:
CFI(".cfi_def_cfa_offset 16\n")
where CFI is defined to a noop on darwin and other platforms
that don't support those directives.
llvm-svn: 44803
2007-12-10 19:10:18 +00:00
Duncan Sands
9f76be61d1
Make PruneEH update the nounwind/noreturn attributes
...
on functions as it calculates them.
llvm-svn: 44802
2007-12-10 19:09:40 +00:00
Duncan Sands
5c65cb4633
Fix PR1836: in the interpreter, read and write apints
...
using the minimum possible number of bytes. For little
endian targets run on little endian machines, apints are
stored in memory from LSB to MSB as before. For big endian
targets on big endian machines they are stored from MSB to
LSB which wasn't always the case before (if the target and
host endianness doesn't match values are stored according
to the host's endianness). Doing this requires knowing the
endianness of the host, which is determined when configuring -
thanks go to Anton for this. Only having access to little
endian machines I was unable to properly test the big endian
part, which is also the most complicated...
llvm-svn: 44796
2007-12-10 17:43:13 +00:00
Anton Korobeynikov
657be86229
And finally annotate X86-64 version of callback.
...
All bad stuff from SSE version is implicitely inherited :)
llvm-svn: 44794
2007-12-10 15:27:07 +00:00
Anton Korobeynikov
88e9d082d8
Provide annotation for SSE version of callback. It's even more
...
broken, because doesn't mark xmm regs properly
llvm-svn: 44793
2007-12-10 15:13:55 +00:00
Anton Korobeynikov
81e9dc4af7
Annotate JIT callback function with call frame infromation.
...
This will allow us (theoretically) to unwind through JITer.
The code wasn't verified, so I'm pretty sure offsets are wrong :)
llvm-svn: 44792
2007-12-10 14:54:42 +00:00
Duncan Sands
81b25817f9
It looks like this has been broken for some time -
...
get it to compile.
llvm-svn: 44791
2007-12-10 14:43:10 +00:00
Owen Anderson
ba61806ef1
A little more progress on StrongPHIElimination, now that I have a better sense of
...
how the CodeGen machinery works.
llvm-svn: 44786
2007-12-10 08:07:09 +00:00
Christopher Lamb
d202e03fe5
Improve branch folding by recgonizing that explict successor relationships impact the value of fall-through choices.
...
llvm-svn: 44785
2007-12-10 07:24:06 +00:00
Gordon Henriksen
4b904b9627
Delete the CollectorNamePool if it should become empty.
...
llvm-svn: 44775
2007-12-10 03:35:18 +00:00
Gordon Henriksen
dc5cafb74e
Fix a typo spotted by Nick Lewycky.
...
llvm-svn: 44774
2007-12-10 03:30:21 +00:00
Gordon Henriksen
71183b6739
Adding a collector name attribute to Function in the IR. These
...
methods are new to Function:
bool hasCollector() const;
const std::string &getCollector() const;
void setCollector(const std::string &);
void clearCollector();
The assembly representation is as such:
define void @f() gc "shadow-stack" { ...
The implementation uses an on-the-side table to map Functions to
collector names, such that there is no overhead. A StringPool is
further used to unique collector names, which are extremely
likely to be unique per process.
llvm-svn: 44769
2007-12-10 03:18:06 +00:00
Gordon Henriksen
14a5569f4e
Reverting dtor devirtualization patch.
...
_sabre_: it has a major problem: by the time ~Value is run, all of the "parts" of the derived classes have been destroyed
_sabre_: the vtable lives to fight another day
llvm-svn: 44760
2007-12-10 02:14:30 +00:00
Chris Lattner
12f9855a42
remove some dead code.
...
llvm-svn: 44757
2007-12-10 01:51:38 +00:00
Chris Lattner
13daba07d9
fix some warnings.
...
llvm-svn: 44756
2007-12-10 01:51:22 +00:00
Chris Lattner
d05f4ba524
Fix a big problem in the recent dtor refactoring work, now it passes 2007-11-19-InlineAsm.ll
...
llvm-svn: 44755
2007-12-10 01:48:29 +00:00
Gordon Henriksen
3e5be66ccb
Devirtualizing Value destructor (PR889). Patch by Pawel Kunio!
...
llvm-svn: 44747
2007-12-09 22:46:10 +00:00
Chris Lattner
64443973c0
Duncan points out that the subtraction is unneeded since hte code
...
knows the vector is not pow2
llvm-svn: 44740
2007-12-09 17:56:34 +00:00
Gordon Henriksen
ad80af9677
Upgrading this test to 2.0 .ll syntax.
...
llvm-svn: 44738
2007-12-09 15:03:01 +00:00
Chris Lattner
3f42d12072
Fix PR1782, patch by Wojtek Matyjewicz!
...
llvm-svn: 44733
2007-12-09 07:35:13 +00:00
Gordon Henriksen
76c5dfd7df
Fix a very silly typo.
...
llvm-svn: 44732
2007-12-09 01:12:08 +00:00
Chris Lattner
ad6094ddd3
Fix accidental commit by Bill.
...
llvm-svn: 44729
2007-12-09 00:27:38 +00:00
Chris Lattner
69d3298777
Add support for splitting the operand of a return instruction.
...
llvm-svn: 44728
2007-12-09 00:06:19 +00:00
Bill Wendling
3f19dfe794
Reverting 44702. It wasn't correct to rename them.
...
llvm-svn: 44727
2007-12-08 23:58:46 +00:00
Chris Lattner
e48fc80446
add many new cases to SplitResult. SplitResult now handles all the cases that LegalizeDAG does.
...
llvm-svn: 44726
2007-12-08 23:58:27 +00:00
Chris Lattner
de9046af54
Implement splitting support for store, allowing us to compile:
...
%f8 = type <8 x float>
define void @test_f8(%f8* %P, %f8* %Q, %f8* %S) {
%p = load %f8* %P ; <%f8> [#uses=1]
%q = load %f8* %Q ; <%f8> [#uses=1]
%R = add %f8 %p, %q ; <%f8> [#uses=1]
store %f8 %R, %f8* %S
ret void
}
into:
_test_f8:
movaps 16(%rdi), %xmm0
addps 16(%rsi), %xmm0
movaps (%rdi), %xmm1
addps (%rsi), %xmm1
movaps %xmm0, 16(%rdx)
movaps %xmm1, (%rdx)
ret
llvm-svn: 44725
2007-12-08 23:24:26 +00:00
Chris Lattner
de87224cd9
implement vector splitting of load, undef, and binops.
...
llvm-svn: 44724
2007-12-08 23:08:49 +00:00
Chris Lattner
1ef437d4e1
implement some methods.
...
llvm-svn: 44723
2007-12-08 22:40:18 +00:00
Chris Lattner
a5e7db115e
add scaffolding for splitting of vectors.
...
llvm-svn: 44722
2007-12-08 22:37:41 +00:00
Nate Begeman
b52ad35bc4
Project cleanups
...
llvm-svn: 44721
2007-12-08 22:29:19 +00:00
Chris Lattner
5c62ba5fb8
Remove dead file and directory.
...
llvm-svn: 44720
2007-12-08 22:17:33 +00:00
Chris Lattner
8c8eaf6b92
reorganize header to separate into functional blocks.
...
llvm-svn: 44719
2007-12-08 21:59:32 +00:00
Chris Lattner
4063bd6eae
split scalarization out to its own file.
...
llvm-svn: 44718
2007-12-08 20:30:28 +00:00
Chris Lattner
5c7c46baaf
Split expansion out into its own file.
...
llvm-svn: 44717
2007-12-08 20:27:32 +00:00
Chris Lattner
029c816460
Split promotion support out to its own file.
...
llvm-svn: 44716
2007-12-08 20:24:38 +00:00
Chris Lattner
757d4beba9
Rename LegalizeDAGTypes.cpp -> LegalizeTypes.cpp
...
llvm-svn: 44715
2007-12-08 20:17:13 +00:00
Chris Lattner
92288147b6
Split the class definition of DAGTypeLegalizer out into a header.
...
Leave it visibility hidden, but not in an anon namespace.
llvm-svn: 44714
2007-12-08 20:16:06 +00:00
Gordon Henriksen
e33aec0dd6
Incorporating review feedback from Reid.
...
llvm-svn: 44713
2007-12-08 20:10:40 +00:00
Chris Lattner
abef872bc0
remove dead #include.
...
llvm-svn: 44711
2007-12-08 19:06:21 +00:00
Chris Lattner
d58954b040
add #include
...
llvm-svn: 44710
2007-12-08 19:03:30 +00:00
Chris Lattner
31e0f1af67
eliminate dependency on Bitcode headers.
...
llvm-svn: 44709
2007-12-08 19:01:44 +00:00
Chris Lattner
c779e00f17
remove dead #include, APInt.h already has the needed forward decls.
...
llvm-svn: 44708
2007-12-08 19:00:38 +00:00
Chris Lattner
e5256754e7
proper #include order.
...
llvm-svn: 44707
2007-12-08 19:00:03 +00:00
Gordon Henriksen
4b41a6f529
Adding a StringPool data structure, which GC will use.
...
llvm-svn: 44705
2007-12-08 17:07:47 +00:00
Gordon Henriksen
05481d91be
Fix bug in constructing Ocaml option types in the bindings.
...
llvm-svn: 44704
2007-12-08 16:55:43 +00:00
Chris Lattner
ff87f05e43
aesthetic changes, no functionality change. Evan, it's not clear
...
what 'Available' is, please add a comment near it and rename it
if appropriate.
llvm-svn: 44703
2007-12-08 07:22:58 +00:00
Bill Wendling
2b07d8c5a0
Renaming:
...
isTriviallyReMaterializable -> hasNoSideEffects
isReallyTriviallyReMaterializable -> isTriviallyReMaterializable
llvm-svn: 44702
2007-12-08 07:17:56 +00:00
Chris Lattner
f47015bc74
Fix a significant code quality regression I introduced on PPC64 quite
...
a while ago. We now produce:
_foo:
mflr r0
std r0, 16(r1)
ld r2, 16(r1)
std r2, 0(r3)
ld r0, 16(r1)
mtlr r0
blr
instead of:
_foo:
mflr r0
std r0, 16(r1)
lis r0, 0
ori r0, r0, 16
ldx r2, r1, r0
std r2, 0(r3)
ld r0, 16(r1)
mtlr r0
blr
for:
void foo(void **X) {
*X = __builtin_return_address(0);
}
on ppc64.
llvm-svn: 44701
2007-12-08 07:04:58 +00:00
Chris Lattner
f6a8156e4f
implement __builtin_return_addr(0) on ppc.
...
llvm-svn: 44700
2007-12-08 06:59:59 +00:00
Chris Lattner
a6c8297e84
refactor some code to avoid overloading the name 'usesLR' in
...
different places to mean different things. Document what the
one in PPCFunctionInfo means and when it is valid.
llvm-svn: 44699
2007-12-08 06:39:11 +00:00
Chris Lattner
1ebfecc8d0
Implement correct isa<UnaryInstruction>, problem reported by "ST".
...
llvm-svn: 44697
2007-12-08 04:37:52 +00:00
Bill Wendling
4375173ba0
Incorporated comments from Evan and Chris:
...
http://lists.cs.uiuc.edu/pipermail/llvm-commits/Week-of-Mon-20071203/056043.html
http://lists.cs.uiuc.edu/pipermail/llvm-commits/Week-of-Mon-20071203/056048.html
llvm-svn: 44696
2007-12-08 01:47:01 +00:00
Owen Anderson
086b2c4537
Fix several cache coherence bugs in MemDep/GVN that were found. Also add some (disabled) debugging code
...
to make such problems easier to diagnose in the future, written by Duncan Sands.
llvm-svn: 44695
2007-12-08 01:37:09 +00:00
Evan Cheng
92105ac0cd
Doh
...
llvm-svn: 44694
2007-12-08 01:01:07 +00:00
Evan Cheng
cd6913627e
Fix a compilation warning.
...
llvm-svn: 44692
2007-12-08 01:00:31 +00:00
Evan Cheng
ab87e735cd
Fix a compilation warning.
...
llvm-svn: 44691
2007-12-08 01:00:21 +00:00
Chuck Rose III
c214d1605f
Adding MachineLoopInfo.h,.cpp and MachineLICP.cpp to VStudio build
...
llvm-svn: 44690
2007-12-08 00:53:13 +00:00
Bill Wendling
fb706bc52b
Initial commit of the machine code LICM pass. It successfully hoists this:
...
_foo:
li r2, 0
LBB1_1: ; bb
li r5, 0
stw r5, 0(r3)
addi r2, r2, 1
addi r3, r3, 4
cmplw cr0, r2, r4
bne cr0, LBB1_1 ; bb
LBB1_2: ; return
blr
to:
_foo:
li r2, 0
li r5, 0
LBB1_1: ; bb
stw r5, 0(r3)
addi r2, r2, 1
addi r3, r3, 4
cmplw cr0, r2, r4
bne cr0, LBB1_1 ; bb
LBB1_2: ; return
blr
ZOMG!! :-)
Moar to come...
llvm-svn: 44687
2007-12-07 21:42:31 +00:00
Evan Cheng
b41d838d28
Add comment.
...
llvm-svn: 44686
2007-12-07 21:30:01 +00:00
Evan Cheng
bfd373a53e
Much improved v8i16 shuffles. (Step 1).
...
llvm-svn: 44676
2007-12-07 08:07:39 +00:00
Owen Anderson
b1d4fda856
Fix a stupid error that Chris pointed out.
...
llvm-svn: 44674
2007-12-07 04:04:55 +00:00
Evan Cheng
26593a04db
New test case.
...
llvm-svn: 44672
2007-12-07 01:48:46 +00:00
Evan Cheng
85cdba29b0
Add an option to control this heuristic tweak so I can test it.
...
llvm-svn: 44671
2007-12-07 00:28:32 +00:00
Evan Cheng
c829e5cdf0
Remove a bogus optimization. It's not possible to do a move to low element to a <8 x i16> or <16 x i8> vector.
...
llvm-svn: 44669
2007-12-06 22:14:22 +00:00
Evan Cheng
5cb41390ab
Fix a bogus test case.
...
llvm-svn: 44668
2007-12-06 22:12:45 +00:00
Dale Johannesen
5eff4de9c8
Redo previous patch so optimization only done for i1.
...
Simpler and safer.
llvm-svn: 44663
2007-12-06 17:53:31 +00:00
Evan Cheng
8393dc7378
Turning simple splitting on. Start testing new coalescer heuristics as new llcbeta.
...
llvm-svn: 44660
2007-12-06 08:54:31 +00:00
Chris Lattner
eedaf92fcf
third time around: instead of disabling this completely,
...
only disable it if we don't know it will be obviously profitable.
Still fixme, but less so. :)
llvm-svn: 44658
2007-12-06 07:47:55 +00:00
Chris Lattner
b5fdfb9612
Actually, disable this code for now. More analysis and improvements to
...
the X86 backend are needed before this should be enabled by default.
llvm-svn: 44657
2007-12-06 07:44:31 +00:00
Chris Lattner
7c709a5d08
implement a readme entry, compiling the code into:
...
_foo:
movl $12, %eax
andl 4(%esp), %eax
movl _array(%eax), %eax
ret
instead of:
_foo:
movl 4(%esp), %eax
shrl $2, %eax
andl $3, %eax
movl _array(,%eax,4), %eax
ret
As it turns out, this triggers all the time, in a wide variety of
situations, for example, I see diffs like this in various programs:
- movl 8(%eax), %eax
- shll $2, %eax
- andl $1020, %eax
- movl (%esi,%eax), %eax
+ movzbl 8(%eax), %eax
+ movl (%esi,%eax,4), %eax
- shll $2, %edx
- andl $1020, %edx
- movl (%edi,%edx), %edx
+ andl $255, %edx
+ movl (%edi,%edx,4), %edx
Unfortunately, I also see stuff like this, which can be fixed in the
X86 backend:
- andl $85, %ebx
- addl _bit_count(,%ebx,4), %ebp
+ shll $2, %ebx
+ andl $340, %ebx
+ addl _bit_count(%ebx), %ebp
llvm-svn: 44656
2007-12-06 07:33:36 +00:00
Chris Lattner
d2bbbabbfb
simplify some code.
...
llvm-svn: 44655
2007-12-06 06:25:04 +00:00
Chris Lattner
42558bf664
implement the rest of the functionality from SelectionDAGLegalize::ScalarizeVectorOp
...
llvm-svn: 44654
2007-12-06 05:53:43 +00:00
Chuck Rose III
cc2a661322
Adjust VStudio files to add JITMemoryManager files + include <cassert> from same.
...
llvm-svn: 44651
2007-12-06 02:03:01 +00:00
Chris Lattner
0ccb663cca
move some ashr-specific code out of commonShiftTransforms into visitAShr.
...
llvm-svn: 44650
2007-12-06 01:59:46 +00:00
Dale Johannesen
05bbbda78a
Fix PR1842.
...
llvm-svn: 44649
2007-12-06 01:43:46 +00:00
Chris Lattner
7f3587e344
add a new ExecutionEngine::createJIT which can be used if you only want
...
to create a JIT. This lets you specify JIT-specific configuration items
like the JITMemoryManager to use.
llvm-svn: 44647
2007-12-06 01:34:04 +00:00
Chris Lattner
dc351b94f9
simplify creation of the interpreter, make ExecutionEngine ctor protected,
...
delete one ExecutionEngine ctor, minor cleanup.
llvm-svn: 44646
2007-12-06 01:08:09 +00:00
Chris Lattner
dfa39289a5
fix this when run on non x86 hosts.
...
llvm-svn: 44645
2007-12-06 01:05:52 +00:00
Evan Cheng
7fc1d98353
Fix for PR1831: if all defs of an interval are re-materializable, then it's a preferred spill candiate.
...
llvm-svn: 44644
2007-12-06 00:01:56 +00:00
Evan Cheng
d3d8017bcb
If both result of the {s|z}xt and its source are live out, rewrite all uses of the source with result of extension.
...
llvm-svn: 44643
2007-12-05 23:58:20 +00:00
Chris Lattner
6a04fcb2f4
improve header guard
...
llvm-svn: 44641
2007-12-05 23:45:41 +00:00
Chris Lattner
55d8c3f71b
split the JIT memory management code out from the main JIT logic into its
...
own JITMemoryManager interface. There is no functionality change with
this patch.
llvm-svn: 44640
2007-12-05 23:39:57 +00:00
Chris Lattner
5e224c32f4
add a note
...
llvm-svn: 44638
2007-12-05 23:05:06 +00:00
Chris Lattner
ad05e17491
add a note
...
llvm-svn: 44637
2007-12-05 22:58:19 +00:00
Bill Wendling
dc71f08586
Alphabetizing; I want to be the last in the file!!!! ;-)
...
llvm-svn: 44629
2007-12-05 21:26:54 +00:00
Scott Michel
7c56a522af
Regenerated configure after autoconf/configure.ac change.
...
llvm-svn: 44628
2007-12-05 21:24:02 +00:00
Scott Michel
83d54c9ee0
Minor updates:
...
- Fix typo in SPUCallingConv.td
- Credit myself for CellSPU work
- Add CellSPU to 'all' host target list
llvm-svn: 44627
2007-12-05 21:23:16 +00:00
Duncan Sands
abba5e218c
Commit 44487 broke bootstrap of llvm-gcc-4.2. It is
...
not yet clear why, but in the meantime work around the
problem by making less use of readnone/readonly info.
llvm-svn: 44626
2007-12-05 21:03:28 +00:00
Evan Cheng
3b8a674469
Added canFoldMemoryOperand for PPC.
...
llvm-svn: 44623
2007-12-05 18:41:29 +00:00
Evan Cheng
8492bdeaa4
Update foldMemoryOperand.
...
llvm-svn: 44621
2007-12-05 18:36:37 +00:00
Chris Lattner
de9bfcf67a
fix warnings
...
llvm-svn: 44620
2007-12-05 18:32:18 +00:00
Chris Lattner
8292519705
allow this to build
...
llvm-svn: 44619
2007-12-05 18:30:11 +00:00
Neil Booth
06f20ea4ba
Prior commit updated wrong if, apologies.
...
llvm-svn: 44614
2007-12-05 13:06:04 +00:00
Neil Booth
3ab004bca6
Handle zero correctly.
...
llvm-svn: 44613
2007-12-05 13:01:24 +00:00
Evan Cheng
678b86d6ce
MachineInstr can change. Store indexes instead.
...
llvm-svn: 44612
2007-12-05 10:24:35 +00:00
Evan Cheng
06353b48b5
If a split live interval is spilled again, remove the kill marker on its last use.
...
llvm-svn: 44611
2007-12-05 09:51:10 +00:00
Evan Cheng
64b3baaaea
Clobber more bugs.
...
llvm-svn: 44610
2007-12-05 09:05:34 +00:00
Evan Cheng
d7de56ac93
Fix kill info for split intervals.
...
llvm-svn: 44609
2007-12-05 08:16:32 +00:00
Chris Lattner
c9693c60a5
more scalarization
...
llvm-svn: 44608
2007-12-05 07:45:02 +00:00
Chris Lattner
1a0d49a63c
scalarize vector binops
...
llvm-svn: 44607
2007-12-05 07:36:58 +00:00
Evan Cheng
269dbd31d0
- Mark last use of a split interval as kill instead of letting spiller track it.
...
This allows an important optimization to be re-enabled.
- If all uses / defs of a split interval can be folded, give the interval a
low spill weight so it would not be picked in case spilling is needed (avoid
pushing other intervals in the same BB to be spilled).
llvm-svn: 44601
2007-12-05 03:22:34 +00:00
Evan Cheng
bb26301864
Add a argument to storeRegToStackSlot and storeRegToAddr to specify whether
...
the stored register is killed.
llvm-svn: 44600
2007-12-05 03:14:33 +00:00
Scott Michel
d766e5d7c2
fixed header attribution
...
llvm-svn: 44599
2007-12-05 02:08:01 +00:00
Scott Michel
4834955fdf
More stuff for CellSPU -- this should be enough to get an error-free
...
compilation (no files missing). Test cases remain to be checked in.
llvm-svn: 44598
2007-12-05 02:01:41 +00:00
Scott Michel
d1b5b9f68c
Updated source file headers to llvm coding standard.
...
llvm-svn: 44597
2007-12-05 01:40:25 +00:00
Scott Michel
8d35728607
Two missing files.
...
llvm-svn: 44596
2007-12-05 01:31:18 +00:00
Scott Michel
eff980208a
Main CellSPU backend files checked in. Intrinsics and autoconf files
...
remain.
llvm-svn: 44595
2007-12-05 01:24:05 +00:00
Dale Johannesen
9d43e3d841
Handle 0 correctly in string->APFloat conversion.
...
llvm-svn: 44594
2007-12-05 01:10:19 +00:00
Ted Kremenek
ca0cb926f4
Added "Emitter" functor to allow easy emitting of elements of a container
...
using std::for_each.
llvm-svn: 44589
2007-12-05 00:13:07 +00:00
Evan Cheng
e412a4427b
Remove a unsafe optimization. This fixes 401.bzip2.
...
llvm-svn: 44587
2007-12-04 23:57:55 +00:00
Devang Patel
e9d786e54d
Add --with-llvmgcc= and --with-llvmgxx= configure options.
...
llvm-svn: 44586
2007-12-04 22:54:47 +00:00
Scott Michel
dfe09ed085
More files in the CellSPU drop...
...
llvm-svn: 44584
2007-12-04 22:35:58 +00:00
Scott Michel
6e22c651d1
More of the Cell SPU code drop from "Team Aerospace".
...
llvm-svn: 44582
2007-12-04 22:23:35 +00:00
Evan Cheng
cd8a89b3cd
Spiller unfold optimization bug: do not clobber a reusable stack slot value unless it can be modified.
...
llvm-svn: 44575
2007-12-04 19:19:45 +00:00
Chris Lattner
b892225fb9
Implement framework for scalarizing node results. This is sufficient
...
to codegen this:
define float @test_extract_elt(<1 x float> * %P) {
%p = load <1 x float>* %P
%R = extractelement <1 x float> %p, i32 0
ret float %R
}
llvm-svn: 44570
2007-12-04 07:48:46 +00:00
Chris Lattner
681c9d6697
start providing framework for scalarizing vectors.
...
llvm-svn: 44569
2007-12-04 07:29:51 +00:00
Evan Cheng
d1badb960e
Discard split intervals made empty due to folding.
...
llvm-svn: 44565
2007-12-04 00:32:23 +00:00
Scott Michel
d821fe741e
More CellSPU files... more to follow.
...
llvm-svn: 44559
2007-12-03 23:14:43 +00:00
Scott Michel
c7bd8d9cb0
Makefile fragment for CellSPU.
...
llvm-svn: 44558
2007-12-03 23:12:49 +00:00
Scott Michel
256e9abbb9
First commit to CellSPU. More to follow
...
llvm-svn: 44557
2007-12-03 23:09:49 +00:00
Evan Cheng
40965448ff
Bug fixes.
...
llvm-svn: 44549
2007-12-03 21:31:55 +00:00
Gordon Henriksen
363b02003b
Track dependencies when creating symlinks to LLVM libraries next
...
to the ocaml bindings. This is required on Windows where 'ln -sf'
actually creates a copy. Thanks to Alain Frisch for noticing this.
llvm-svn: 44547
2007-12-03 21:15:53 +00:00
Anton Korobeynikov
3ddfbf36e9
Regenerate
...
llvm-svn: 44546
2007-12-03 21:01:29 +00:00
Anton Korobeynikov
a638f11cd2
Fix fallout from my last patch: don't reject varargs functions :)
...
llvm-svn: 44545
2007-12-03 21:00:45 +00:00
Duncan Sands
38ef3a8ec7
Rather than having special rules like "intrinsics cannot
...
throw exceptions", just mark intrinsics with the nounwind
attribute. Likewise, mark intrinsics as readnone/readonly
and get rid of special aliasing logic (which didn't use
anything more than this anyway).
llvm-svn: 44544
2007-12-03 20:06:50 +00:00
Chris Lattner
19970e62e7
update file comment.
...
llvm-svn: 44543
2007-12-03 19:43:18 +00:00