Chris Lattner [Mon, 17 Dec 2007 18:58:23 +0000 (18:58 +0000)]
cleanup this code, making it more "llvm-like".
Add comments to reset indicating that it deletes its pointer.
Add a new take() method, which can be used to get the pointer
without it being deleted.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45112
91177308-0d34-0410-b5e6-
96231b3b80d8
Duncan Sands [Mon, 17 Dec 2007 18:08:19 +0000 (18:08 +0000)]
Make invokes of inline asm legal. Teach codegen
how to lower them (with no attempt made to be
efficient, since they should only occur for
unoptimized code).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45108
91177308-0d34-0410-b5e6-
96231b3b80d8
David Greene [Mon, 17 Dec 2007 17:42:03 +0000 (17:42 +0000)]
GLIBCXX_DEBUG fix. std::vector<>::end() is invalidated by erase.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45101
91177308-0d34-0410-b5e6-
96231b3b80d8
David Greene [Mon, 17 Dec 2007 17:40:29 +0000 (17:40 +0000)]
Get rid of annoying spaces.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45100
91177308-0d34-0410-b5e6-
96231b3b80d8
David Greene [Mon, 17 Dec 2007 17:39:51 +0000 (17:39 +0000)]
Fix GLIBCXX_DEBUG errors. Erase invalidates std::vector iterators
passed the erased element.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45099
91177308-0d34-0410-b5e6-
96231b3b80d8
Gordon Henriksen [Mon, 17 Dec 2007 16:09:28 +0000 (16:09 +0000)]
Disabling a RUN line that's broken until addrspace roundtrips
through llvm-as|llvm-dis.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45097
91177308-0d34-0410-b5e6-
96231b3b80d8
Gordon Henriksen [Mon, 17 Dec 2007 16:08:32 +0000 (16:08 +0000)]
C and Ocaml bindings for address spaces, for that burgeoning market
for Ocaml-based compilers targeting embedded devices. :)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45096
91177308-0d34-0410-b5e6-
96231b3b80d8
Christopher Lamb [Mon, 17 Dec 2007 01:17:35 +0000 (01:17 +0000)]
regenerate.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45085
91177308-0d34-0410-b5e6-
96231b3b80d8
Christopher Lamb [Mon, 17 Dec 2007 01:12:55 +0000 (01:12 +0000)]
Change the PointerType api for creating pointer types. The old functionality of PointerType::get() has become PointerType::getUnqual(), which returns a pointer in the generic address space. The new prototype of PointerType::get() requires both a type and an address space.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45082
91177308-0d34-0410-b5e6-
96231b3b80d8
Christopher Lamb [Mon, 17 Dec 2007 01:00:21 +0000 (01:00 +0000)]
Make it clear in the LangRef that allocation instructions only operated on the generic address space. Implement support in the verifier for ensuring this is true.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45080
91177308-0d34-0410-b5e6-
96231b3b80d8
Duncan Sands [Sun, 16 Dec 2007 21:01:21 +0000 (21:01 +0000)]
Revert this part of r45073 until the verifier is
changed not to reject invoke of inline asm.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45077
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sun, 16 Dec 2007 20:41:33 +0000 (20:41 +0000)]
don't violate C TBAA rules, use FloatToBits instead.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45076
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sun, 16 Dec 2007 20:26:54 +0000 (20:26 +0000)]
fix a questionable cast, thanks to Mike Stump for pointing this out.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45075
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sun, 16 Dec 2007 20:12:41 +0000 (20:12 +0000)]
Fix the JIT encoding of cmp*ss, which aborts with this assertion currently:
X86CodeEmitter.cpp:378: failed assertion `0 && "Immediate size not set!"'
I *think* this is right, but Evan, please verify. It also looks like
CMPSDrr and maybe others are missing this info. Evan, plz investigate.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45074
91177308-0d34-0410-b5e6-
96231b3b80d8
Duncan Sands [Sun, 16 Dec 2007 15:51:49 +0000 (15:51 +0000)]
Make instcombine promote inline asm calls to 'nounwind'
calls. Remove special casing of inline asm from the
inliner. There is a potential problem: the verifier
rejects invokes of inline asm (not sure why). If an
asm call is not marked "nounwind" in some .ll, and
instcombine is not run, but the inliner is run, then
an illegal module will be created. This is bad but
I'm not sure what the best approach is. I'm tempted
to remove the check in the verifier...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45073
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Sun, 16 Dec 2007 09:16:12 +0000 (09:16 +0000)]
Remove spurious warnings from GCC:
warning: suggest a space before ';' or explicit braces around empty
body in 'for' statement
Patch by Mike Stump (modified slightly by yours truly).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45071
91177308-0d34-0410-b5e6-
96231b3b80d8
Owen Anderson [Sun, 16 Dec 2007 05:44:27 +0000 (05:44 +0000)]
Break local interferences in StrongPHIElimination. One step closer...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45070
91177308-0d34-0410-b5e6-
96231b3b80d8
Owen Anderson [Sun, 16 Dec 2007 04:07:23 +0000 (04:07 +0000)]
A few more comments.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45069
91177308-0d34-0410-b5e6-
96231b3b80d8
Anton Korobeynikov [Sun, 16 Dec 2007 01:36:16 +0000 (01:36 +0000)]
Define addString() and lookup() out-of-line to dissuade the C++ compiler from inlining it.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45068
91177308-0d34-0410-b5e6-
96231b3b80d8
Anton Korobeynikov [Sun, 16 Dec 2007 01:27:04 +0000 (01:27 +0000)]
Provide GraphTraits and DOTGraphTraits interface for Trie.
Retoss private/public stuff.
Make copy ctor and operator= private.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45067
91177308-0d34-0410-b5e6-
96231b3b80d8
Anton Korobeynikov [Sun, 16 Dec 2007 00:42:19 +0000 (00:42 +0000)]
Constify graph arguments
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45066
91177308-0d34-0410-b5e6-
96231b3b80d8
Anton Korobeynikov [Sat, 15 Dec 2007 22:23:24 +0000 (22:23 +0000)]
Use references in DF iterators. This eliminates copy-ctor calls on huge objects (graphs)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45063
91177308-0d34-0410-b5e6-
96231b3b80d8
Duncan Sands [Sat, 15 Dec 2007 17:37:40 +0000 (17:37 +0000)]
These are more correctly called signaling NaNs.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45059
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Sat, 15 Dec 2007 03:00:47 +0000 (03:00 +0000)]
Make better use of instructions that clear high bits; fix various 2-wide shuffle bugs.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45058
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Sat, 15 Dec 2007 02:54:12 +0000 (02:54 +0000)]
__builtin_ia32_movqv4si is now expanded to a shuffle.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45057
91177308-0d34-0410-b5e6-
96231b3b80d8
Scott Michel [Sat, 15 Dec 2007 00:38:50 +0000 (00:38 +0000)]
Start committing working test cases for CellSPU.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45050
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Fri, 14 Dec 2007 20:08:14 +0000 (20:08 +0000)]
Actually, MOVPQIto64mr is a dup of MOVPQI2QImr, MOV64toPQIrm is a dup of MOVQI2PQIrm.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45041
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Fri, 14 Dec 2007 19:54:07 +0000 (19:54 +0000)]
Fix (mem) <-> low 64-bits of xmm bugs pointed out by David Greene. Mac OS X Leopard assembler recognizes movq.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45040
91177308-0d34-0410-b5e6-
96231b3b80d8
Duncan Sands [Fri, 14 Dec 2007 19:38:31 +0000 (19:38 +0000)]
Teach the interpreter to read and write memory in the
endianness of the target not of the host. Done by the
simple expedient of reversing bytes for primitive types
if the host and target endianness don't match. This is
correct for integer and pointer types. I don't know if
it is correct for floating point types.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45039
91177308-0d34-0410-b5e6-
96231b3b80d8
Dale Johannesen [Fri, 14 Dec 2007 19:25:34 +0000 (19:25 +0000)]
x86-32 long doubles are 4-byte aligned on the stack
for parameter passing (only for that, on Darwin).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45038
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Fri, 14 Dec 2007 18:49:43 +0000 (18:49 +0000)]
Fix bsf / bsr jit encoding.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45037
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Fri, 14 Dec 2007 18:25:34 +0000 (18:25 +0000)]
Oops. Forgot these.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45036
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Fri, 14 Dec 2007 15:41:34 +0000 (15:41 +0000)]
Add explicit keywords, and fix a minor typo that they uncovered.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45034
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Fri, 14 Dec 2007 15:15:11 +0000 (15:15 +0000)]
Don't redirect stderr when it isn't needed.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45033
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Fri, 14 Dec 2007 15:13:08 +0000 (15:13 +0000)]
Fix a typo in a comment.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45032
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Fri, 14 Dec 2007 15:11:58 +0000 (15:11 +0000)]
Fix a typo in a comment.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45031
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Fri, 14 Dec 2007 15:10:00 +0000 (15:10 +0000)]
Fix Intel asm syntax for the bsr and bsf instructions.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45030
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Fri, 14 Dec 2007 08:30:15 +0000 (08:30 +0000)]
Fix ctlz and cttz. llvm definition requires them to return number of bits in of the src type when value is zero.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45029
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Fri, 14 Dec 2007 08:25:15 +0000 (08:25 +0000)]
Bug fix. Must also match ResNo when matching an operand with a user.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45028
91177308-0d34-0410-b5e6-
96231b3b80d8
Anders Carlsson [Fri, 14 Dec 2007 06:38:54 +0000 (06:38 +0000)]
All MMX shift instructions took a <2 x i32> vector as the shift amount parameter. Change this to be <1 x i64> instead, which matches the assembler instruction.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45027
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Fri, 14 Dec 2007 02:13:44 +0000 (02:13 +0000)]
Implement ctlz and cttz with bsr and bsf.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45024
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Fri, 14 Dec 2007 01:48:59 +0000 (01:48 +0000)]
Add flags to indicate that there are "never" side effects or that there "may be"
side effects for machine instructions.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45022
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Thu, 13 Dec 2007 20:43:47 +0000 (20:43 +0000)]
Make it more clear that some things that can't be done in .td files can
still be done in the LLVM code generator. And update the summary for the
X86 target.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45013
91177308-0d34-0410-b5e6-
96231b3b80d8
Wojciech Matyjewicz [Thu, 13 Dec 2007 16:22:58 +0000 (16:22 +0000)]
Make these loops follow GetGEPOperands() behavior.
Let: %q = GEP %p, X, ...
If %p is a GEP, we can chase baseptr further, only if X==0.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44999
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Thu, 13 Dec 2007 07:50:36 +0000 (07:50 +0000)]
Fix typo.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44997
91177308-0d34-0410-b5e6-
96231b3b80d8
Owen Anderson [Thu, 13 Dec 2007 05:53:03 +0000 (05:53 +0000)]
Add register pairs to the list to check for local interferences.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44987
91177308-0d34-0410-b5e6-
96231b3b80d8
Owen Anderson [Thu, 13 Dec 2007 05:43:37 +0000 (05:43 +0000)]
Remove ugly and horrible code. It's not necessary for correctness, and can be added back later if it causes code quality issues.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44986
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Thu, 13 Dec 2007 03:32:53 +0000 (03:32 +0000)]
Be extra careful with extension use optimation. Now turned on by default.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44981
91177308-0d34-0410-b5e6-
96231b3b80d8
Nate Begeman [Thu, 13 Dec 2007 02:24:45 +0000 (02:24 +0000)]
Apply CBE/MSIL patch to autoconf
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44980
91177308-0d34-0410-b5e6-
96231b3b80d8
Nate Begeman [Thu, 13 Dec 2007 02:17:17 +0000 (02:17 +0000)]
Add install-libs target which only installs libraries, not tools
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44979
91177308-0d34-0410-b5e6-
96231b3b80d8
Zhou Sheng [Thu, 13 Dec 2007 02:03:57 +0000 (02:03 +0000)]
Remove this testcase as it will always fail on
platform like Darwin.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44977
91177308-0d34-0410-b5e6-
96231b3b80d8
Nate Begeman [Thu, 13 Dec 2007 01:18:52 +0000 (01:18 +0000)]
Do not build CBackend and MSIL regardless of configured targets
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44973
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Thu, 13 Dec 2007 00:43:27 +0000 (00:43 +0000)]
Fold some and + shift in x86 addressing mode.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44970
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Thu, 13 Dec 2007 00:42:35 +0000 (00:42 +0000)]
Oops. Forgot these.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44969
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 13 Dec 2007 00:04:46 +0000 (00:04 +0000)]
Fix for edge profiling, patch by 'Marc' for PR1857
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44965
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Wed, 12 Dec 2007 23:15:59 +0000 (23:15 +0000)]
Cosmetic change.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44961
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Wed, 12 Dec 2007 23:12:09 +0000 (23:12 +0000)]
Implicit def instructions, e.g. X86::IMPLICIT_DEF_GR32, are always re-materializable and they should not be spilled.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44960
91177308-0d34-0410-b5e6-
96231b3b80d8
Duncan Sands [Wed, 12 Dec 2007 23:03:45 +0000 (23:03 +0000)]
Remove host endianness info from TargetData and
put it in a new header System/Host.h instead.
Instead of getting the endianness from configure,
calculate it directly.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44959
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Wed, 12 Dec 2007 22:25:09 +0000 (22:25 +0000)]
Remove a forward-declaration for a non-existant class.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44955
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Wed, 12 Dec 2007 22:21:26 +0000 (22:21 +0000)]
Allow vector integer constants to be created with
SelectionDAG::getConstant, in the same way as vector floating-point
constants. This allows the legalize expansion code for @llvm.ctpop and
friends to be usable with vector types.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44954
91177308-0d34-0410-b5e6-
96231b3b80d8
Anton Korobeynikov [Wed, 12 Dec 2007 19:08:44 +0000 (19:08 +0000)]
Use vector for child storage instead of map. This will also make
our life during future GraphTraits'ing slightly easier.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44952
91177308-0d34-0410-b5e6-
96231b3b80d8
Duncan Sands [Wed, 12 Dec 2007 16:01:40 +0000 (16:01 +0000)]
Revert r44626, which turned off the use of readonly
and readnone for functions with bodies because it
broke llvm-gcc-4.2 bootstrap. It turns out that,
because of LLVM's array_ref hack, gcc was computing
pure/const attributes wrong (now fixed by turning
off the gcc ipa-pure-const pass).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44937
91177308-0d34-0410-b5e6-
96231b3b80d8
Wojciech Matyjewicz [Wed, 12 Dec 2007 15:21:32 +0000 (15:21 +0000)]
1. "Upgrage" comments.
2. Using zero-extended value of Scale and unsigned division is safe provided
that Scale doesn't have the sign bit set.
Previously these 2 instructions:
%p = bitcast [100 x {i8,i8,i8}]* %x to i8*
%q = getelementptr i8* %p, i32 -4
were combined into:
%q = getelementptr [100 x { i8, i8, i8 }]* %x, i32 0,
i32
1431655764, i32 0
what was incorrect.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44936
91177308-0d34-0410-b5e6-
96231b3b80d8
Christopher Lamb [Wed, 12 Dec 2007 08:45:45 +0000 (08:45 +0000)]
Regenerate.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44934
91177308-0d34-0410-b5e6-
96231b3b80d8
Christopher Lamb [Wed, 12 Dec 2007 08:44:39 +0000 (08:44 +0000)]
Implement part of review feedback for address spaces.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44933
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Wed, 12 Dec 2007 07:55:34 +0000 (07:55 +0000)]
Use shuffles to implement insert_vector_elt for i32, i64, f32, and f64.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44929
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Wed, 12 Dec 2007 07:54:08 +0000 (07:54 +0000)]
Add a test case for -optimize-ext-uses.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44928
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Wed, 12 Dec 2007 06:45:40 +0000 (06:45 +0000)]
Lower a build_vector with all constants into a constpool load unless it can be done with a move to low part.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44921
91177308-0d34-0410-b5e6-
96231b3b80d8
Zhou Sheng [Wed, 12 Dec 2007 06:16:47 +0000 (06:16 +0000)]
Add a guard to cxxabi header as other platform may
not support it.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44914
91177308-0d34-0410-b5e6-
96231b3b80d8
Zhou Sheng [Wed, 12 Dec 2007 04:55:43 +0000 (04:55 +0000)]
Fixed PR1629.
Make lli interpreter correctly call external functions sin()/cos(),
__cxa_guard_acquire() and __cxa_guard_release().
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44910
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 12 Dec 2007 03:56:54 +0000 (03:56 +0000)]
Fix a bug in my previous patch, thanks to Jay Foad for
pointing this out and correcting the patch!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44907
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Wed, 12 Dec 2007 02:53:41 +0000 (02:53 +0000)]
Don't muck with phi nodes; bug fixes.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44905
91177308-0d34-0410-b5e6-
96231b3b80d8
Scott Michel [Wed, 12 Dec 2007 02:38:28 +0000 (02:38 +0000)]
Correct typo for Linux: s/esp/%rsp/
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44904
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Wed, 12 Dec 2007 01:51:58 +0000 (01:51 +0000)]
Bit masks conflicted. Needed to bump them by one.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44903
91177308-0d34-0410-b5e6-
96231b3b80d8
Owen Anderson [Wed, 12 Dec 2007 01:25:08 +0000 (01:25 +0000)]
Forgot to remove a register from the PHI-union after I'd determined that it
interfered with other registers. Seems like that might be a good thing to do. :-)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44902
91177308-0d34-0410-b5e6-
96231b3b80d8
Gordon Henriksen [Wed, 12 Dec 2007 01:04:30 +0000 (01:04 +0000)]
Add (very basic) bindings for ModuleProvider.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44899
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Wed, 12 Dec 2007 00:51:06 +0000 (00:51 +0000)]
Bug fix. Only safe to perform extension uses optimization if the source of extension is also defined in the same BB as the extension.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44896
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Berlin [Wed, 12 Dec 2007 00:37:04 +0000 (00:37 +0000)]
Changes from Curtis Dunham implementing lazy cycle detection algorithm.
Changes from me implementing different way of representing points-to anything.
Changes from me that improve slightly on LCD.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44895
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Tue, 11 Dec 2007 23:36:57 +0000 (23:36 +0000)]
If deleting a reload instruction due to reuse (value is available in register R and reload is targeting R), make sure to invalidate the kill information of the last kill.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44894
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Tue, 11 Dec 2007 23:27:51 +0000 (23:27 +0000)]
Need to grow the indexed map. Added debug statements.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44892
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Tue, 11 Dec 2007 22:22:22 +0000 (22:22 +0000)]
Simplify slightly.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44881
91177308-0d34-0410-b5e6-
96231b3b80d8
Anton Korobeynikov [Tue, 11 Dec 2007 21:55:38 +0000 (21:55 +0000)]
Remove Trie::Edge class. Now edge labels are stored into nodes itself.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44880
91177308-0d34-0410-b5e6-
96231b3b80d8
Owen Anderson [Tue, 11 Dec 2007 20:12:11 +0000 (20:12 +0000)]
More progress on StrongPHIElimination. Now we actually USE the DomForest!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44877
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Tue, 11 Dec 2007 19:40:06 +0000 (19:40 +0000)]
Blark! How in the world did this work without this?!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44874
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Tue, 11 Dec 2007 19:17:04 +0000 (19:17 +0000)]
- Update the virtual reg to machine instruction map when hoisting.
- Fix subtle bug when creating initially creating this map.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44873
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Tue, 11 Dec 2007 18:45:11 +0000 (18:45 +0000)]
Checking for "zero operands" during the "CanHoistInst()" method isn't necessary
because those with side effects will be caught by other checks in here.
Also, simplify the check for a BB in a sub loop.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44871
91177308-0d34-0410-b5e6-
96231b3b80d8
Nate Begeman [Tue, 11 Dec 2007 18:06:14 +0000 (18:06 +0000)]
Allow the JIT to encode MMX instructions
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44869
91177308-0d34-0410-b5e6-
96231b3b80d8
Wojciech Matyjewicz [Tue, 11 Dec 2007 17:46:25 +0000 (17:46 +0000)]
Use correct member access operator.
(my test commit as well)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44868
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Tue, 11 Dec 2007 15:55:52 +0000 (15:55 +0000)]
Rename these tests to use the appropriate suffixes.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44867
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Tue, 11 Dec 2007 15:50:23 +0000 (15:50 +0000)]
Use not instead of ignore when an exit status is expected to always
be non-zero.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44866
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Tue, 11 Dec 2007 15:41:11 +0000 (15:41 +0000)]
Don't redirect stderr when it isn't needed.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44865
91177308-0d34-0410-b5e6-
96231b3b80d8
Duncan Sands [Tue, 11 Dec 2007 12:20:47 +0000 (12:20 +0000)]
Fix compilation.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44864
91177308-0d34-0410-b5e6-
96231b3b80d8
Christopher Lamb [Tue, 11 Dec 2007 09:32:07 +0000 (09:32 +0000)]
Update credits.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44861
91177308-0d34-0410-b5e6-
96231b3b80d8
Christopher Lamb [Tue, 11 Dec 2007 09:31:00 +0000 (09:31 +0000)]
Add information on address space qualifiers for pointer types and global
declarations to the LangRef.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44860
91177308-0d34-0410-b5e6-
96231b3b80d8
Christopher Lamb [Tue, 11 Dec 2007 09:02:08 +0000 (09:02 +0000)]
Regenerate.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44859
91177308-0d34-0410-b5e6-
96231b3b80d8
Christopher Lamb [Tue, 11 Dec 2007 08:59:05 +0000 (08:59 +0000)]
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.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44858
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 11 Dec 2007 07:49:37 +0000 (07:49 +0000)]
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
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44856
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 11 Dec 2007 07:29:44 +0000 (07:29 +0000)]
Implement constant folding if vector<->vector bitcasts where the number
of source/dest elements changes. This implements
test/Transforms/InstCombine/bitcast-vector-fold.ll
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44855
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Spencer [Tue, 11 Dec 2007 06:53:58 +0000 (06:53 +0000)]
Don't have APInt.cpp depend upon DerivedTypes.h. This helps with splitting the
Support libraries separately into their own module.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44852
91177308-0d34-0410-b5e6-
96231b3b80d8
Anton Korobeynikov [Tue, 11 Dec 2007 06:53:44 +0000 (06:53 +0000)]
Add first and really dirty version of generic Trie structure
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44851
91177308-0d34-0410-b5e6-
96231b3b80d8