Bob Wilson [Mon, 26 Oct 2009 22:34:44 +0000 (22:34 +0000)]
Add more ARM instruction encodings for 's' bit set and "rs" register encoding
bits. Patch by Johnny Chen.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85167
91177308-0d34-0410-b5e6-
96231b3b80d8
David Goodwin [Mon, 26 Oct 2009 22:31:16 +0000 (22:31 +0000)]
Allow the aggressive anti-dep breaker to process the same region multiple times. This is necessary because new anti-dependencies are exposed when "current" ones are broken.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85166
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Mon, 26 Oct 2009 22:18:58 +0000 (22:18 +0000)]
Simplify this code. LoopDeletion doesn't need to explicit check that
the loop exiting block dominates the latch block; if ScalarEvolution
can prove that the trip-count is finite, that's sufficient.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85165
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Mon, 26 Oct 2009 22:14:22 +0000 (22:14 +0000)]
Code that checks WillNotOverflowSignedAdd before creating an Add
can safely use the NSW bit on the Add.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85164
91177308-0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Mon, 26 Oct 2009 22:06:01 +0000 (22:06 +0000)]
Update CMake files.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85161
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Mon, 26 Oct 2009 21:55:43 +0000 (21:55 +0000)]
Teach BasicAA how to analyze Select instructions, and make it more
aggressive on PHI instructions.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85158
91177308-0d34-0410-b5e6-
96231b3b80d8
Julien Lerouge [Mon, 26 Oct 2009 20:01:35 +0000 (20:01 +0000)]
Remove / use flags that are now set in the Makefile.config.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85149
91177308-0d34-0410-b5e6-
96231b3b80d8
Julien Lerouge [Mon, 26 Oct 2009 20:00:35 +0000 (20:00 +0000)]
Regenerate.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85148
91177308-0d34-0410-b5e6-
96231b3b80d8
Julien Lerouge [Mon, 26 Oct 2009 19:58:44 +0000 (19:58 +0000)]
Add an autoconf test to check for optional compiler flags like
-Wno-missing-field-initializers or -Wno-variadic-macros.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85147
91177308-0d34-0410-b5e6-
96231b3b80d8
David Goodwin [Mon, 26 Oct 2009 19:41:00 +0000 (19:41 +0000)]
Define virtual destructor in *.cpp file.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85146
91177308-0d34-0410-b5e6-
96231b3b80d8
David Goodwin [Mon, 26 Oct 2009 19:32:42 +0000 (19:32 +0000)]
Add aggressive anti-dependence breaker. Currently it is not the default for any target. Enable with -break-anti-dependencies=all.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85145
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Mon, 26 Oct 2009 19:12:14 +0000 (19:12 +0000)]
Check in the experimental GEP splitter pass. This pass splits complex
GEPs (more than one non-zero index) into simple GEPs (at most one
non-zero index). In some simple experiments using this it's not
uncommon to see 3% overall code size wins, because it exposes
redundancies that can be eliminated, however it's tricky to use
because instcombine aggressively undoes the work that this pass does.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85144
91177308-0d34-0410-b5e6-
96231b3b80d8
David Goodwin [Mon, 26 Oct 2009 19:00:47 +0000 (19:00 +0000)]
Add virtual destructor.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85141
91177308-0d34-0410-b5e6-
96231b3b80d8
Anton Korobeynikov [Mon, 26 Oct 2009 18:40:24 +0000 (18:40 +0000)]
Revert r85134, it breaks mingw build
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85138
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Mon, 26 Oct 2009 18:36:40 +0000 (18:36 +0000)]
Add CreateZExtOrBitCast and CreateSExtOrBitCast to TargetFolder
for consistency with ConstantFolder.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85137
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Mon, 26 Oct 2009 18:26:18 +0000 (18:26 +0000)]
When checking whether a def of an aliased register is dead, ask the
machineinstr whether the aliased register is dead, rather than the original
register is dead. This allows it to get the correct answer when examining
an instruction like this:
CALLpcrel32 <ga:foo>, %AL<imp-def>, %EAX<imp-def,dead>
where EAX is dead but a subregister of it is still live. This fixes PR5294.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85135
91177308-0d34-0410-b5e6-
96231b3b80d8
Sanjiv Gupta [Mon, 26 Oct 2009 18:22:59 +0000 (18:22 +0000)]
Make PIC16 overlay a loadable pass.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85134
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Mon, 26 Oct 2009 17:09:00 +0000 (17:09 +0000)]
Do not use expensive sort().
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85130
91177308-0d34-0410-b5e6-
96231b3b80d8
Benjamin Kramer [Mon, 26 Oct 2009 17:01:20 +0000 (17:01 +0000)]
Some svn:ignore tweaks.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85128
91177308-0d34-0410-b5e6-
96231b3b80d8
David Goodwin [Mon, 26 Oct 2009 16:59:04 +0000 (16:59 +0000)]
Break anti-dependence breaking out into its own class.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85127
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Mon, 26 Oct 2009 16:54:35 +0000 (16:54 +0000)]
Add support to encode type info using llvm::Constant.
Patch by Talin!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85126
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Mon, 26 Oct 2009 15:55:24 +0000 (15:55 +0000)]
Fix a typo in a comment.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85120
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 26 Oct 2009 15:40:07 +0000 (15:40 +0000)]
reapply r85085 with a bugfix to avoid infinite looping.
All of the 'demorgan' related xforms need to use
dyn_castNotVal, not m_Not.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85119
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Mon, 26 Oct 2009 15:32:57 +0000 (15:32 +0000)]
Make LSR's OptimizeShadowIV ignore induction variables with negative
strides for now, because it doesn't handle them correctly. This fixes a
miscompile of SingleSource/Benchmarks/Misc-C++/ray.
This problem was usually hidden because indvars transforms such induction
variables into negations of canonical induction variables.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85118
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Mon, 26 Oct 2009 04:56:07 +0000 (04:56 +0000)]
- Revert some changes from 85044, 85045, and 85047 that broke x86_64 tests and
bootstrapping. It's not safe to leave identity subreg_to_reg and insert_subreg
around.
- Relax register scavenging to allow use of partially "not-live" registers. It's
common for targets to operate on registers where the top bits are undef. e.g.
s0 =
d0 = insert_subreg d0<undef>, s0, 1
...
= d0
When the insert_subreg is eliminated by the coalescer, the scavenger used to
complain. The previous fix was to keep to insert_subreg around. But that's
brittle and it's overly conservative when we want to use the scavenger to
allocate registers. It's actually legal and desirable for other instructions
to use the "undef" part of d0. e.g.
s0 =
d0 = insert_subreg d0<undef>, s0, 1
...
s1 =
= s1
= d0
We probably need add a "partial-undef" marker on machine operand so the
machine verifier would not complain.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85091
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Mon, 26 Oct 2009 03:51:32 +0000 (03:51 +0000)]
Revert 85085. It causes infinite looping during llvm-gcc build.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85090
91177308-0d34-0410-b5e6-
96231b3b80d8
Edward O'Callaghan [Mon, 26 Oct 2009 02:37:56 +0000 (02:37 +0000)]
Fix gmake check for AuroraUX triple.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85088
91177308-0d34-0410-b5e6-
96231b3b80d8
Chandler Carruth [Mon, 26 Oct 2009 01:35:46 +0000 (01:35 +0000)]
Move DataTypes.h to include/llvm/System, update all users. This breaks the last
direct inclusion edge from System to Support.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85086
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 26 Oct 2009 01:06:31 +0000 (01:06 +0000)]
Implement PR3266 & PR5276, folding:
not (or (icmp, icmp)) -> and(icmp, icmp)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85085
91177308-0d34-0410-b5e6-
96231b3b80d8
Chandler Carruth [Sun, 25 Oct 2009 23:54:41 +0000 (23:54 +0000)]
Update the 'svn:ignore' property to remove stale file references.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85084
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sun, 25 Oct 2009 23:47:55 +0000 (23:47 +0000)]
convert or.ll to filecheck and merge or2 into it.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85083
91177308-0d34-0410-b5e6-
96231b3b80d8
Chandler Carruth [Sun, 25 Oct 2009 23:41:56 +0000 (23:41 +0000)]
Remove stale reference to ThreadSupport.h.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85082
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sun, 25 Oct 2009 23:22:50 +0000 (23:22 +0000)]
fix PR5295 where the .ll parser didn't reject a function after a global
or global after a function with conflicting names. Update some testcases
that were accidentally depending on this behavior.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85081
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Sun, 25 Oct 2009 23:11:06 +0000 (23:11 +0000)]
Suppress -Asserts warning.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85078
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sun, 25 Oct 2009 23:06:42 +0000 (23:06 +0000)]
fix PR5186: the JIT shouldn't try to codegen available_externally
functions it should just look them up like declarations.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85077
91177308-0d34-0410-b5e6-
96231b3b80d8
Chandler Carruth [Sun, 25 Oct 2009 22:38:41 +0000 (22:38 +0000)]
Remove unused includes.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85074
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Grosbach [Sun, 25 Oct 2009 19:14:48 +0000 (19:14 +0000)]
of -> or
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85065
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Grosbach [Sun, 25 Oct 2009 18:55:46 +0000 (18:55 +0000)]
80-column cleanup
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85064
91177308-0d34-0410-b5e6-
96231b3b80d8
Sanjiv Gupta [Sun, 25 Oct 2009 08:14:11 +0000 (08:14 +0000)]
Reapply 85006 with a minor fix.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85052
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Sun, 25 Oct 2009 08:01:41 +0000 (08:01 +0000)]
Add a couple of ARM cross-rc coalescing tests.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85051
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Sun, 25 Oct 2009 07:53:48 +0000 (07:53 +0000)]
Update tests.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85050
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Sun, 25 Oct 2009 07:53:28 +0000 (07:53 +0000)]
Add ARM getMatchingSuperRegClass to handle S / D / Q cross regclass coalescing.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85049
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Sun, 25 Oct 2009 07:52:27 +0000 (07:52 +0000)]
Don't forget subreg indices when folding load / store.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85048
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Sun, 25 Oct 2009 07:51:47 +0000 (07:51 +0000)]
Use isIdentityCopy. Fix a bozo bug (flipped condition) in InvalidateRegDef.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85047
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Sun, 25 Oct 2009 07:49:57 +0000 (07:49 +0000)]
Code clean up.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85046
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Sun, 25 Oct 2009 07:48:51 +0000 (07:48 +0000)]
Do not delete identity insert_subreg even if dest is virtual. Let later passes delete them. This avoids register scavenger complain.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85045
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Sun, 25 Oct 2009 07:47:07 +0000 (07:47 +0000)]
Add isIdentityCopy to check for identity copy (or extract_subreg, etc.)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85044
91177308-0d34-0410-b5e6-
96231b3b80d8
Nick Lewycky [Sun, 25 Oct 2009 06:57:41 +0000 (06:57 +0000)]
Remove includes of Support/Compiler.h that are no longer needed after the
VISIBILITY_HIDDEN removal.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85043
91177308-0d34-0410-b5e6-
96231b3b80d8
Nick Lewycky [Sun, 25 Oct 2009 06:33:48 +0000 (06:33 +0000)]
Remove VISIBILITY_HIDDEN from class/struct found inside anonymous namespaces.
Chris claims we should never have visibility_hidden inside any .cpp file but
that's still not true even after this commit.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85042
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sun, 25 Oct 2009 06:17:51 +0000 (06:17 +0000)]
this is done.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85041
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sun, 25 Oct 2009 06:15:37 +0000 (06:15 +0000)]
Teach FoldBitCast to be able to handle bitcasts from (e.g.) i128 -> <4 x float>.
This allows us to simplify this:
union vec2d {
double e[2];
double v __attribute__((vector_size(16)));
};
typedef union vec2d vec2d;
static vec2d a={{1,2}}, b={{3,4}};
vec2d foo () {
return (vec2d){ .v = a.v + b.v * (vec2d){{5,5}}.v };
}
down to:
define %0 @foo() nounwind ssp {
entry:
%mrv5 = insertvalue %0 undef, double 1.
600000e+01, 0 ; <%0> [#uses=1]
%mrv6 = insertvalue %0 %mrv5, double 2.
200000e+01, 1 ; <%0> [#uses=1]
ret %0 %mrv6
}
instead of:
define %0 @foo() nounwind ssp {
entry:
%mrv5 = insertvalue %0 undef, double extractelement (<2 x double> fadd (<2 x double> fmul (<2 x double> bitcast (<1 x i128> <i128
85174437667405312423031577302488055808> to <2 x double>), <2 x double> <double 3.
000000e+00, double 4.
000000e+00>), <2 x double> <double 1.
000000e+00, double 2.
000000e+00>), i32 0), 0 ; <%0> [#uses=1]
%mrv6 = insertvalue %0 %mrv5, double extractelement (<2 x double> fadd (<2 x double> fmul (<2 x double> bitcast (<1 x i128> <i128
85174437667405312423031577302488055808> to <2 x double>), <2 x double> <double 3.
000000e+00, double 4.
000000e+00>), <2 x double> <double 1.
000000e+00, double 2.
000000e+00>), i32 1), 1 ; <%0> [#uses=1]
ret %0 %mrv6
}
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85040
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sun, 25 Oct 2009 06:08:26 +0000 (06:08 +0000)]
move FoldBitCast earlier in the file, and use it instead of
ConstantExpr::getBitCast in various places.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85039
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sun, 25 Oct 2009 06:02:57 +0000 (06:02 +0000)]
refactor FoldBitCast to reduce nesting and to always return a constantexpr
instead of returning null on failure. No functionality change.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85038
91177308-0d34-0410-b5e6-
96231b3b80d8
Nick Lewycky [Sun, 25 Oct 2009 05:20:17 +0000 (05:20 +0000)]
Remove ICmpInst::isSignedPredicate which was a reimplementation
CmpInst::isSigned.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85037
91177308-0d34-0410-b5e6-
96231b3b80d8
Nick Lewycky [Sun, 25 Oct 2009 03:50:03 +0000 (03:50 +0000)]
Sink isTrueWhenEqual from ICmpInst to CmpInst. Add a matching isFalseWhenEqual
which is equal to !isTrueWhenEqual for ints but not for floats.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85036
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Sun, 25 Oct 2009 03:30:55 +0000 (03:30 +0000)]
lit: Add --config-prefix option, to override default config file names.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85035
91177308-0d34-0410-b5e6-
96231b3b80d8
Nick Lewycky [Sun, 25 Oct 2009 03:22:00 +0000 (03:22 +0000)]
Indent.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85034
91177308-0d34-0410-b5e6-
96231b3b80d8
Mikhail Glushenkov [Sun, 25 Oct 2009 01:44:24 +0000 (01:44 +0000)]
Regenerate.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85031
91177308-0d34-0410-b5e6-
96231b3b80d8
Mikhail Glushenkov [Sun, 25 Oct 2009 01:44:11 +0000 (01:44 +0000)]
Document OptionPreprocessor.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85030
91177308-0d34-0410-b5e6-
96231b3b80d8
Mikhail Glushenkov [Sun, 25 Oct 2009 01:43:50 +0000 (01:43 +0000)]
Add a test for OptionPreprocessor.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85029
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Sun, 25 Oct 2009 01:37:26 +0000 (01:37 +0000)]
lit: Allow use of /dev/null in redirects on Windows (replace by a temporary
file).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85028
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Grosbach [Sun, 25 Oct 2009 00:45:07 +0000 (00:45 +0000)]
When the scavenger is looking for a good candidate location to restore from a
spill, it should avoid doing so inside the live range of a virtual register.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85026
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Sat, 24 Oct 2009 23:52:07 +0000 (23:52 +0000)]
Update these tests to match what Loop::print now prints.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85021
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Sat, 24 Oct 2009 23:37:16 +0000 (23:37 +0000)]
MapValue doesn't needs its LLVMContext argument.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85020
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Sat, 24 Oct 2009 23:34:26 +0000 (23:34 +0000)]
Rename isLoopExit to isLoopExiting, for consistency with the wording
used elsewhere - an exit block is a block outside the loop branched to
from within the loop. An exiting block is a block inside the loop that
branches out.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85019
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Sat, 24 Oct 2009 23:24:45 +0000 (23:24 +0000)]
Delete a spurious semicolon.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85018
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Sat, 24 Oct 2009 23:23:04 +0000 (23:23 +0000)]
Make these tests more interesting by using
-verify-dom-info and -verify-loop-info, which enable additional
(expensive) consistency checks.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85017
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Sat, 24 Oct 2009 23:19:52 +0000 (23:19 +0000)]
Rewrite LoopRotation's SSA updating code using SSAUpdater.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85016
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Sat, 24 Oct 2009 20:32:49 +0000 (20:32 +0000)]
lit: Support '>>' redirections when executing scripts internally.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85014
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Sat, 24 Oct 2009 20:32:43 +0000 (20:32 +0000)]
Update CMake dependencies.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85013
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Sat, 24 Oct 2009 20:32:36 +0000 (20:32 +0000)]
Teach macho-dump to dump UUIDs.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85012
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Sat, 24 Oct 2009 20:01:11 +0000 (20:01 +0000)]
Make DominanceFrontierBase::print's output prettier.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85011
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Sat, 24 Oct 2009 19:57:58 +0000 (19:57 +0000)]
Make DominanceFrontier::addBasicBlock return the iterator for the newly
inserted block.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85010
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Sat, 24 Oct 2009 19:56:23 +0000 (19:56 +0000)]
Add an explicit keyword.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85009
91177308-0d34-0410-b5e6-
96231b3b80d8
Sanjiv Gupta [Sat, 24 Oct 2009 18:19:41 +0000 (18:19 +0000)]
Revert back 85006 for now as it breaks PIC16 tests.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85008
91177308-0d34-0410-b5e6-
96231b3b80d8
Sanjiv Gupta [Sat, 24 Oct 2009 18:02:44 +0000 (18:02 +0000)]
Adding support for placing global objects in shared data memory.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85006
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 24 Oct 2009 05:27:19 +0000 (05:27 +0000)]
various cleanups suggested by Duncan
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84993
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 24 Oct 2009 05:22:15 +0000 (05:22 +0000)]
fix PR5287, a serious regression from my previous patches. Thanks to
Duncan for the nice tiny testcase.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84992
91177308-0d34-0410-b5e6-
96231b3b80d8
Victor Hernandez [Sat, 24 Oct 2009 04:23:03 +0000 (04:23 +0000)]
Auto-upgrade free instructions to calls to the builtin free function.
Update all analysis passes and transforms to treat free calls just like FreeInst.
Remove RaiseAllocations and all its tests since FreeInst no longer needs to be raised.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84987
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Sat, 24 Oct 2009 02:07:42 +0000 (02:07 +0000)]
80 col violation.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84986
91177308-0d34-0410-b5e6-
96231b3b80d8
Anton Korobeynikov [Sat, 24 Oct 2009 00:27:00 +0000 (00:27 +0000)]
Add some asserts to catch copyRegToReg() fails early
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84983
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Grosbach [Sat, 24 Oct 2009 00:19:24 +0000 (00:19 +0000)]
Restrict Thumb1 register allocation to low registers, even for instructions that
can access the hi regs. Our prologue and epilogue code doesn't know how to
properly handle save/restore of the hi regs, so things go badly when we alloc
them.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84982
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Fri, 23 Oct 2009 23:09:19 +0000 (23:09 +0000)]
Identity copies should not contribute to spill weight.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84978
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Grosbach [Fri, 23 Oct 2009 23:07:42 +0000 (23:07 +0000)]
FIXME no longer applies. R12 and R3 are available for allocation
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84977
91177308-0d34-0410-b5e6-
96231b3b80d8
Jeffrey Yasskin [Fri, 23 Oct 2009 22:37:43 +0000 (22:37 +0000)]
Fix llvm.org/PR4822: allow module deletion after a function has been
compiled.
When functions are compiled, they accumulate references in the JITResolver's
stub maps. This patch removes those references when the functions are
destroyed. It's illegal to destroy a Function when any thread may still try to
call its machine code.
This patch also updates r83987 to use ValueMap instead of explicit CallbackVHs
and fixes a couple "do stuff inside assert()" bugs from r84522.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84975
91177308-0d34-0410-b5e6-
96231b3b80d8
Victor Hernandez [Fri, 23 Oct 2009 21:09:37 +0000 (21:09 +0000)]
Remove AllocationInst. Since MallocInst went away, AllocaInst is the only subclass of AllocationInst, so it no longer is necessary.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84969
91177308-0d34-0410-b5e6-
96231b3b80d8
Jeffrey Yasskin [Fri, 23 Oct 2009 20:54:00 +0000 (20:54 +0000)]
Fix stylistic and documentation problems in ValueMap found by Nick Lewycky and
Evan Cheng.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84967
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Fri, 23 Oct 2009 17:57:43 +0000 (17:57 +0000)]
APInt-ify the gep scaling code, so that it correctly handles the case where
the scale overflows pointer-sized arithmetic. This fixes PR5281.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84954
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Fri, 23 Oct 2009 17:10:01 +0000 (17:10 +0000)]
Make LoopDeletion check the maximum backedge taken count, rather than the
exact backedge taken count, when checking for infinite loops. This allows
it to delete loops with multiple exit conditions.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84952
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 23 Oct 2009 07:00:55 +0000 (07:00 +0000)]
some stuff is done, we still have constantexpr simplification to do.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84943
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 23 Oct 2009 06:57:37 +0000 (06:57 +0000)]
teach libanalysis to simplify vector loads with bitcast sources. This
implements something out of Target/README.txt producing:
_foo: ## @foo
movl 4(%esp), %eax
movapd LCPI1_0, %xmm0
movapd %xmm0, (%eax)
ret $4
instead of:
_foo: ## @foo
movl 4(%esp), %eax
movapd _b, %xmm0
mulpd LCPI1_0, %xmm0
addpd _a, %xmm0
movapd %xmm0, (%eax)
ret $4
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84942
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 23 Oct 2009 06:50:36 +0000 (06:50 +0000)]
enhance FoldReinterpretLoadFromConstPtr to handle loads of up to 32
bytes (i256).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84941
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 23 Oct 2009 06:23:49 +0000 (06:23 +0000)]
teach libanalysis to fold int and fp loads from almost arbitrary
non-type-safe constant initializers. This sort of thing happens
quite a bit for 4-byte loads out of string constants, unions,
bitfields, and an interesting endianness check from sqlite, which
is something like this:
const int sqlite3one = 1;
# define SQLITE_BIGENDIAN (*(char *)(&sqlite3one)==0)
# define SQLITE_LITTLEENDIAN (*(char *)(&sqlite3one)==1)
# define SQLITE_UTF16NATIVE (SQLITE_BIGENDIAN?SQLITE_UTF16BE:SQLITE_UTF16LE)
all of these macros now constant fold away.
This implements PR3152 and is based on a patch started by Eli, but heavily
modified and extended.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84936
91177308-0d34-0410-b5e6-
96231b3b80d8
Tanya Lattner [Fri, 23 Oct 2009 06:20:06 +0000 (06:20 +0000)]
Add 2.6 release note.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84934
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Fri, 23 Oct 2009 05:58:34 +0000 (05:58 +0000)]
Update tests for 84931.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84932
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Fri, 23 Oct 2009 05:57:35 +0000 (05:57 +0000)]
X86 needs critical path anti-dependency breaking.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84931
91177308-0d34-0410-b5e6-
96231b3b80d8
Dale Johannesen [Fri, 23 Oct 2009 04:02:51 +0000 (04:02 +0000)]
Commit fixes for half precision I noted in review, so
they don't get lost; I don't think the originator has
write access.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84928
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Fri, 23 Oct 2009 01:37:01 +0000 (01:37 +0000)]
This is passing on Darwin PPC.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84921
91177308-0d34-0410-b5e6-
96231b3b80d8
Victor Hernandez [Fri, 23 Oct 2009 00:59:10 +0000 (00:59 +0000)]
Minor code cleanup.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84919
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Fri, 23 Oct 2009 00:01:05 +0000 (00:01 +0000)]
Neuter stack protectors by only checking character arrays. This is what GCC
does.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84916
91177308-0d34-0410-b5e6-
96231b3b80d8