Eli Friedman
b6fe72e457
Fix for PR4235: to build a floating-point value from integer parts,
...
build an integer and cast that to a float. This fixes a crash
caused by trying to split an f32 into two f16's.
This changes the behavior in test/CodeGen/XCore/fneg.ll because that
testcase now triggers a DAGCombine which converts the fneg into an integer
operation. If someone is interested, it's probably possible to tweak
the test to generate an actual fneg.
llvm-svn: 72162
2009-05-20 06:02:09 +00:00
Evan Cheng
ff129ff17f
Fix test on non-darwin hosts.
...
llvm-svn: 72161
2009-05-20 05:45:36 +00:00
Evan Cheng
e17c02e328
Try again. Allow call to immediate address for ELF or when in static relocation mode.
...
llvm-svn: 72160
2009-05-20 04:53:57 +00:00
Evan Cheng
8a4887572e
Cannot use immediate as call absolute target in PIC mode.
...
llvm-svn: 72154
2009-05-20 01:11:00 +00:00
Dan Gohman
18580e593a
Teach SCEV::isLoopInvariant and SCEV::hasComputableLoopEvolution
...
about the convention from LoopInfo that a null Loop* means the entire
function body.
llvm-svn: 72152
2009-05-20 01:01:24 +00:00
Owen Anderson
47460293cf
Add llvm_start_multithreaded(), which starts up the LLVM internals in thread-safe mode. Provide double-check locking
...
initialization of ManagedStatic's when running in thread-safe mode.
llvm-svn: 72151
2009-05-20 00:39:20 +00:00
Dan Gohman
9e0f5a28dc
Suppress the IV reversal transformation in the case that the RHS
...
of the comparison is defined inside the loop. This fixes a
use-before-def problem, because the transformation puts a use
of the RHS outside the loop.
llvm-svn: 72149
2009-05-20 00:34:08 +00:00
Owen Anderson
d64df37f4c
We need to include config.h here so that the #defines are set properly.
...
llvm-svn: 72148
2009-05-20 00:31:29 +00:00
Owen Anderson
315dc6b65f
Forgot this file in my last commit.
...
llvm-svn: 72141
2009-05-19 22:25:55 +00:00
Owen Anderson
e1474eebee
Split the ENABLE_THREADS #define in two. Now ENABLE_THREADS indicates the ability to run multiple threads at once in the JIT, and requires only
...
mutex support. LLVM_MULTITHREADED indicates (or will indicate) the ability to run LLVM itself across multiple threads, and requires atomics support.
llvm-svn: 72140
2009-05-19 22:18:56 +00:00
Bob Wilson
ba6b02b54b
Fix pr4227: Handle large immediate values in inline assembly.
...
llvm-svn: 72138
2009-05-19 21:27:57 +00:00
Dan Gohman
c24a00edc2
Remove an irrelevant comment.
...
llvm-svn: 72132
2009-05-19 20:38:47 +00:00
Dan Gohman
ccf5417982
Add some more comments to the top of this file.
...
llvm-svn: 72131
2009-05-19 20:37:36 +00:00
Dan Gohman
c44e433ce7
Trim unneeded #includes.
...
llvm-svn: 72130
2009-05-19 20:35:26 +00:00
Dan Gohman
be817680b8
Make SCEVCallbackVH a private nested class inside ScalarEvolution, as
...
it's an implementation detail.
llvm-svn: 72122
2009-05-19 19:22:47 +00:00
Dan Gohman
f61ddb4c06
Create ConstantExpr GEPs the correct way. This fixes
...
MultiSource/Benchmarks/Prolangs-C/football and a variety of other
failures.
llvm-svn: 72120
2009-05-19 19:18:01 +00:00
Bob Wilson
5e7a2b4ff8
Follow up on new support for memory operands in ARM inline assembly.
...
This fixes pr4233.
llvm-svn: 72115
2009-05-19 18:33:02 +00:00
Bill Wendling
59276ca9d4
Forward decls.
...
llvm-svn: 72114
2009-05-19 17:52:31 +00:00
Bill Wendling
5bc220b4eb
Remove 'class' specifier.
...
llvm-svn: 72113
2009-05-19 17:51:26 +00:00
Bill Wendling
2914f42cce
Fix to compile on VS2008.
...
llvm-svn: 72112
2009-05-19 17:50:18 +00:00
Bob Wilson
c6726ecca5
Fix pr4058 and pr4059. Do not split i64 or double arguments between r3 and
...
the stack. Patch by Sandeep Patel.
llvm-svn: 72106
2009-05-19 10:02:36 +00:00
Bob Wilson
ec676a76e7
Fix pr4091: Add support for "m" constraint in ARM inline assembly.
...
llvm-svn: 72105
2009-05-19 05:53:42 +00:00
Dan Gohman
1ef283d538
Remove the #ifndef NDEBUG from the FastISel debugging options. This
...
fixes dejagnu tests that use these options.
llvm-svn: 72094
2009-05-19 02:19:57 +00:00
Dan Gohman
922033d119
Teach SCEVExpander to expand arithmetic involving pointers into GEP
...
instructions. It attempts to create high-level multi-operand GEPs,
though in cases where this isn't possible it falls back to casting
the pointer to i8* and emitting a GEP with that. Using GEP instructions
instead of ptrtoint+arithmetic+inttoptr helps pointer analyses that
don't use ScalarEvolution, such as BasicAliasAnalysis.
Also, make the AddrModeMatcher more aggressive in handling GEPs.
Previously it assumed that operand 0 of a GEP would require a register
in almost all cases. It now does extra checking and can do more
matching if operand 0 of the GEP is foldable. This fixes a problem
that was exposed by SCEVExpander using GEPs.
llvm-svn: 72093
2009-05-19 02:15:55 +00:00
Cristian Cadar
9c425ac042
Test commit.
...
llvm-svn: 72092
2009-05-19 01:56:08 +00:00
Dan Gohman
aa59d257a4
Add some comments noting how IndVarSimplify facilitates
...
LoopInfo functionality.
llvm-svn: 72091
2009-05-19 01:52:46 +00:00
Owen Anderson
de192dfaee
Make using an unsupported CAS size a hard error on Windows.
...
llvm-svn: 72088
2009-05-19 01:08:36 +00:00
Owen Anderson
421e290a35
Fix up the Windows portion of Atomic.h. This is untested, but it is my best understanding of what should work.
...
I'd be much obliged if someone on MSVC++ could try this out and let me know if it works.
llvm-svn: 72087
2009-05-19 01:07:40 +00:00
Owen Anderson
e4233e3349
Template CompareAndSwap function.
...
llvm-svn: 72086
2009-05-19 01:02:27 +00:00
Dale Johannesen
b9a41be8b0
Spacing fix.
...
llvm-svn: 72083
2009-05-19 00:46:42 +00:00
Mike Stump
2eb592f2f9
Fix cmake builds.
...
llvm-svn: 72078
2009-05-19 00:18:14 +00:00
Owen Anderson
4d289e72a2
Now that we have atomics support properly detected by configure,
...
use it to implement Atomic.h.
This expunges the code previously imported from libatomic_ops.
llvm-svn: 72077
2009-05-19 00:08:29 +00:00
Owen Anderson
992fe80601
Test for the presence of GCC atomic builtins at configure time. If not found,
...
disable building LLVM in thread-safe mode and print a nice warning.
Regenerate configure for these changes.
llvm-svn: 72075
2009-05-18 23:58:51 +00:00
Daniel Dunbar
64a0c22154
Add -submit-aux option to NewNightlyTest.pl
...
- If given, the argument will be run using system with the path to the sent
data. Useful for testing nightlytest server replacements.
llvm-svn: 72070
2009-05-18 23:24:26 +00:00
Bill Wendling
a443337af0
Don't set the "location" information for inlined functions' variables.
...
llvm-svn: 72064
2009-05-18 23:08:55 +00:00
Bill Wendling
8e6fe772be
Small code cleanup.
...
llvm-svn: 72057
2009-05-18 22:33:01 +00:00
Dan Gohman
e3bfb41111
Update a comment to reflect changes in the surrounding code.
...
llvm-svn: 72051
2009-05-18 22:15:25 +00:00
Evan Cheng
96674b2285
Add short descriptions of 'implicit' and 'parallel'.
...
llvm-svn: 72050
2009-05-18 22:14:45 +00:00
Bill Wendling
45cb84b4e3
RecordVariable is called each time a DECLARE node is encountered. For an inlined
...
function, this could be many, many times. We don't want to re-add variables to
that DIE for each time. We just want to add them once. Check to make sure that
we haven't added them already.
llvm-svn: 72047
2009-05-18 22:02:36 +00:00
Dale Johannesen
a0756109d8
Add OpSize to 16-bit ADC and SBB.
...
llvm-svn: 72045
2009-05-18 21:41:59 +00:00
Argyrios Kyrtzidis
ce3bd2404a
Add missing file.
...
llvm-svn: 72042
2009-05-18 21:08:45 +00:00
Argyrios Kyrtzidis
422f3a0037
Allow the JIT ExecutionEngine to report details about the generated machine code.
...
Introduce a new class (MachineCodeInfo) that the JIT can fill in with details. Right now, just the address and the size of the machine code are reported.
Patch by Evan Phoenix!
llvm-svn: 72040
2009-05-18 21:06:40 +00:00
Bob Wilson
cc8d63fdef
Fix CodePlacementOpt::OptimizeIntraLoopEdges so that its return value
...
correctly indicates whether it changed the code.
llvm-svn: 72038
2009-05-18 21:02:18 +00:00
Bob Wilson
51e9d81e72
Fix pr4202: Disable CodePlacementOpt for ARM. The ARMConstantIslandPass has
...
to run last because it needs to know the exact size and position of every
basic block. Currently CodePlacementOpt is set up to run last. It might be
worthwhile to investigate reordering these passes, but for now, let's just
make it work.
llvm-svn: 72037
2009-05-18 20:55:32 +00:00
Lang Hames
079c2769b8
New Spiller interface and trivial implementation.
...
llvm-svn: 72030
2009-05-18 19:03:16 +00:00
Dan Gohman
a21c85512e
Revert r72025. It is possible for clients to convert between signed types
...
and pointer types safely if they only do so when the sizes are the same.
llvm-gcc is such a client.
llvm-svn: 72029
2009-05-18 18:55:39 +00:00
Eric Christopher
1b5625d027
Remove getType() overrides for ExtractValueInst and InsertValueInst.
...
Patch by John McCall.
llvm-svn: 72028
2009-05-18 18:46:57 +00:00
Bill Wendling
af2e508015
Revert last commit. It was wrong.
...
llvm-svn: 72026
2009-05-18 18:21:03 +00:00
Dan Gohman
20650de700
Add assertions to CastInst::getCastOpcode to catch attempted conversions
...
between integers and pointers when the source type is marked signed,
since inttoptr and ptrtoint always use zero-extension when the destination
is larger than the source.
llvm-svn: 72025
2009-05-18 18:18:57 +00:00
Bill Wendling
3f41e5ca13
Don't call RegionInlinedFnEnd if our optimization level isn't -O0.
...
llvm-svn: 72024
2009-05-18 18:17:22 +00:00