Dan Gohman
9cc0852f45
Remove a redundant #include.
...
llvm-svn: 82897
2009-09-27 15:21:52 +00:00
Torok Edwin
dd5b0b7cda
Avoid using mutex locks if not in multithreaded mode by using a SmartScopedMutex
...
in RegisterStatistic.
llvm-svn: 82896
2009-09-27 11:08:03 +00:00
Evan Cheng
ffe6da0734
Enable pre-regalloc load / store multiple pass for Thumb2.
...
llvm-svn: 82893
2009-09-27 09:46:04 +00:00
Chris Lattner
d66a99e60a
rename REG -> REGISTER to make it explicit in the doc. <tt>ify some stuff.
...
llvm-svn: 82892
2009-09-27 08:01:44 +00:00
Chris Lattner
80d69b5973
implement and document support for filecheck variables. This
...
allows matching and remembering a string and then matching and
verifying that the string occurs later in the file.
Change X86/xor.ll to use this in some cases where the test was
checking for an arbitrary register allocation decision.
llvm-svn: 82891
2009-09-27 07:56:52 +00:00
Nick Lewycky
676778014b
Remove dead code from this function and optimize. Update its corresponding
...
LangRef entry too.
llvm-svn: 82890
2009-09-27 07:55:32 +00:00
Nick Lewycky
d21c325f09
Instruction::clone does not need to take an LLVMContext&. Remove that and
...
update all the callers.
llvm-svn: 82889
2009-09-27 07:38:41 +00:00
Nick Lewycky
6ea218a96b
Filecheckify this one test.
...
llvm-svn: 82888
2009-09-27 06:25:05 +00:00
Nick Lewycky
18d420fde7
Leave a pointer to the documentation so that people don't end up change one but
...
not the other in the future.
llvm-svn: 82887
2009-09-27 04:57:35 +00:00
Nick Lewycky
d77653667a
Correct the version numbers to match those actually tested for by
...
autoconf/AutoRegen.sh.
llvm-svn: 82886
2009-09-27 04:56:27 +00:00
Nick Lewycky
c54e1a5528
Move the integer type out of 'derived' and into 'primitive'. This permits us
...
to explain that derived types are all composed of other types, which primitive
types aren't. Without moving integer out of derived, this wouldn't be true.
Perform a few trivial cleanups; 'i1' went from a link to #t_primitive to
#t_integer (a holdover from when it was a bool type I suppose).
llvm-svn: 82884
2009-09-27 00:45:11 +00:00
Chris Lattner
b47463f436
remove support for "NoSub" from regex. It seems like a minor optimization
...
and makes the API more annoying. Add a Regex::getNumMatches() method.
llvm-svn: 82877
2009-09-26 21:27:04 +00:00
Torok Edwin
9d7a492755
Speed up clang-only link, by really linking only clang, and not the unittests
...
too.
llvm-svn: 82873
2009-09-26 20:18:58 +00:00
Evan Cheng
eafd25a098
Remove this test.
...
llvm-svn: 82869
2009-09-26 18:51:37 +00:00
Dan Gohman
0a396aa546
Fix SimplifyLibCalls to transfer attributes from callees rather than
...
calls, since direct calls don't always reflect the attributes of their
callees.
llvm-svn: 82867
2009-09-26 18:10:13 +00:00
Dan Gohman
60964df13d
Fix a case where ScalarEvolution was expanding pointer arithmetic
...
to inttoptr/ptrtoint unnecessarily.
llvm-svn: 82864
2009-09-26 16:11:57 +00:00
Duncan Sands
ec5d64fdd5
For the NSWSub support in the builder to actually be useable,
...
there need to be corresponding changes to the constant folders,
done in this patch.
llvm-svn: 82862
2009-09-26 15:35:35 +00:00
Dan Gohman
6899a1cd58
Convert comparisons like (x == infinity) to (x >= infinity) on targets
...
where FCMP_OEQ is not legal and FCMP_OGE is, such as x86.
llvm-svn: 82861
2009-09-26 15:24:17 +00:00
Duncan Sands
64511993cb
Add methods for creating NSW subtraction, as already exists
...
for addition.
llvm-svn: 82860
2009-09-26 15:21:48 +00:00
Dan Gohman
2351c2f8b7
Add a comment describing natural loops.
...
llvm-svn: 82859
2009-09-26 15:09:53 +00:00
Daniel Dunbar
923dc62615
"Update" tests for -disable-if-conversion removal. I think branch.ll should just
...
be removed, but I XFAIL'd it for now.
llvm-svn: 82847
2009-09-26 05:29:36 +00:00
Evan Cheng
48479d0c8f
Really remove this option.
...
llvm-svn: 82838
2009-09-26 02:49:49 +00:00
Evan Cheng
1088c37212
Remove a couple of unused command line options.
...
llvm-svn: 82837
2009-09-26 02:45:45 +00:00
Evan Cheng
c4e3168b65
Add comment.
...
llvm-svn: 82836
2009-09-26 02:43:36 +00:00
Evan Cheng
0b55bde4b3
Convert test to filecheck.
...
llvm-svn: 82835
2009-09-26 02:41:17 +00:00
Dan Gohman
7f73a0c1e4
Don't hoist or sink instructions with physreg uses if the physreg is
...
allocatable. Even if it doesn't appear to have any defs, it may latter
on after register allocation.
llvm-svn: 82834
2009-09-26 02:34:00 +00:00
Dan Gohman
8e056e8b9b
I put the wrong rdar number in this test.
...
llvm-svn: 82829
2009-09-26 01:11:57 +00:00
Dan Gohman
487152872b
Unbreak MachineLICM for instructions that reference RIP on x86-64 too.
...
llvm-svn: 82825
2009-09-25 23:58:45 +00:00
Dan Gohman
d585364b0b
Rename ConstantFP's getInf to getInfinity.
...
llvm-svn: 82823
2009-09-25 23:40:21 +00:00
Dan Gohman
ba2b2eb3fe
Move MachineMemOperand::getAlignment out of line, to avoid needing
...
MathExtras.h in MachineMemOperand.h.
llvm-svn: 82822
2009-09-25 23:33:20 +00:00
Daniel Dunbar
99d02b7818
Remove unused variable.
...
llvm-svn: 82821
2009-09-25 23:26:56 +00:00
Dan Gohman
d564cd42d9
Transform pow(x, 0.5) to (x == -inf ? inf : fabs(sqrt(x))), which is
...
typically faster then doing a general pow.
llvm-svn: 82819
2009-09-25 23:10:17 +00:00
Dan Gohman
01b2c857ed
Add a ConstantFP::getInf utility function for creating infinity ConstantFPs.
...
llvm-svn: 82818
2009-09-25 23:00:48 +00:00
Dan Gohman
7c98ffa2b6
Fix MachineSink to be able to sink instructions that use physical registers
...
which have no defs anywhere in the function. In particular, this fixes sinking
of instructions that reference RIP on x86-64, which is currently being modeled
as a register.
llvm-svn: 82815
2009-09-25 22:53:29 +00:00
Anton Korobeynikov
35078c311e
Regenerate
...
llvm-svn: 82814
2009-09-25 22:53:17 +00:00
Anton Korobeynikov
4e921137da
Provide proper masks for neon perfect shuffle table.
...
I definitely need to read documentation better :(
llvm-svn: 82813
2009-09-25 22:52:29 +00:00
Dan Gohman
090f23c54c
Simplify a few more uses of reg_iterator.
...
llvm-svn: 82812
2009-09-25 22:26:13 +00:00
Dan Gohman
7b662b75a7
Simplify this code by using use_iterator instead of reg_iterator
...
and skipping the defs.
llvm-svn: 82811
2009-09-25 22:24:52 +00:00
Evan Cheng
c0edc5ee28
Code clean up and prepare for Thumb2 support. No functionality changes.
...
llvm-svn: 82805
2009-09-25 21:44:53 +00:00
Evan Cheng
ac17fbc5fe
Flip -disable-post-RA-scheduler to -post-RA-scheduler.
...
llvm-svn: 82803
2009-09-25 21:38:11 +00:00
Jeffrey Yasskin
ae5a12200c
Fix a compile failure introduced by r82675 on MinGW which doesn't have
...
setenv(). This patch just disables the test rather than getting putenv() to
work. Thanks to Sandeep Patel for reporting the problem.
llvm-svn: 82797
2009-09-25 21:07:20 +00:00
Dale Johannesen
53c365d807
Handle sqrt in CannotBeNegativeZero. absf and absl
...
appear to be misspellings, removed in favor of fabs*.
llvm-svn: 82796
2009-09-25 20:54:50 +00:00
Dan Gohman
0ac693a89e
Improve MachineMemOperand handling.
...
- Allocate MachineMemOperands and MachineMemOperand lists in MachineFunctions.
This eliminates MachineInstr's std::list member and allows the data to be
created by isel and live for the remainder of codegen, avoiding a lot of
copying and unnecessary translation. This also shrinks MemSDNode.
- Delete MemOperandSDNode. Introduce MachineSDNode which has dedicated
fields for MachineMemOperands.
- Change MemSDNode to have a MachineMemOperand member instead of its own
fields with the same information. This introduces some redundancy, but
it's more consistent with what MachineInstr will eventually want.
- Ignore alignment when searching for redundant loads for CSE, but remember
the greatest alignment.
Target-specific code which previously used MemOperandSDNodes with generic
SDNodes now use MemIntrinsicSDNodes, with opcodes in a designated range
so that the SelectionDAG framework knows that MachineMemOperand information
is available.
llvm-svn: 82794
2009-09-25 20:36:54 +00:00
Dan Gohman
0c4e55a2f8
Rename getTargetNode to getMachineNode, for consistency with the
...
naming scheme used in SelectionDAG, where there are multiple kinds
of "target" nodes, but "machine" nodes are nodes which represent
a MachineInstr.
llvm-svn: 82790
2009-09-25 18:54:59 +00:00
David Goodwin
89f5854ddd
Finish scheduling itineraries for NEON.
...
llvm-svn: 82788
2009-09-25 18:38:29 +00:00
Dale Johannesen
228874127f
Add readonly to some sin and cos calls; transformations
...
being checked aren't valid without it.
llvm-svn: 82786
2009-09-25 18:15:29 +00:00
Victor Hernandez
f772c0b8b2
Revert 82694 "Auto-upgrade malloc instructions to malloc calls." because it causes regressions in the nightly tests.
...
llvm-svn: 82784
2009-09-25 18:11:52 +00:00
Dale Johannesen
b4b27526eb
Make sure sin, cos, sqrt calls are marked readonly
...
before producing FSIN, FCOS, FSQRT. If they aren't
so marked we have to assume they might set errno.
llvm-svn: 82781
2009-09-25 18:00:35 +00:00
Chris Lattner
7143d73e96
reject attempts to use ()'s in patterns, these are reserved for filecheck.
...
llvm-svn: 82780
2009-09-25 17:29:36 +00:00
Chris Lattner
2b1f7c6a75
reimplement the regex matching strategy by building a single
...
regex and matching it instead of trying to match chunks at a time.
Matching chunks at a time broke with check lines like
CHECK: foo {{.*}}bar
because the .* would eat the entire rest of the line and bar would
never match.
Now we just escape the fixed strings for the user, so that something
like:
CHECK: a() {{.*}}???
is matched as:
CHECK: {{a\(\) .*\?\?\?}}
transparently "under the covers".
llvm-svn: 82779
2009-09-25 17:23:43 +00:00