Bob Wilson
57c4ffb2f3
Use float64 instead of int64 vector elements for NEON vget_low and vget_high
...
functions, since int64 is not a legal type and using it leads to inefficient
code. PR8036.
llvm-svn: 113919
2010-09-15 01:52:33 +00:00
Bob Wilson
9d68270b2e
Use VLD1/VST1 pseudo instructions for loadRegFromStackSlot and
...
storeRegToStackSlot.
llvm-svn: 113918
2010-09-15 01:48:05 +00:00
Jim Grosbach
050a857211
trailing whitespace
...
llvm-svn: 113915
2010-09-15 01:01:45 +00:00
Dale Johannesen
c7739ca945
Add x86MMX a few more places.
...
llvm-svn: 113914
2010-09-15 00:52:23 +00:00
Chris Lattner
8729e47b8f
fix PR8144, a bug where constant merge would merge globals marked
...
attribute(used).
llvm-svn: 113911
2010-09-15 00:30:11 +00:00
Jim Grosbach
901a646188
Reapply r113875 with additional cleanups.
...
"The register specified for a dregpair is the corresponding Q register, so to
get the pair, we need to look up the sub-regs based on the qreg. Create a
lookup function since we don't have access to TargetRegisterInfo here to
be able to use getSubReg(ARM::dsub_[01])."
Additionaly, fix the NEON VLD1* and VST1* instruction patterns not to use
the dregpair modifier for the 2xdreg versions. Explicitly specifying the two
registers as operands is more correct and more consistent with the other
instruction patterns. This enables further cleanup of special case code in the
disassembler as a nice side-effect.
llvm-svn: 113903
2010-09-14 23:54:06 +00:00
Chris Lattner
cd4eadce11
add a terrible hack to allow out with dx is parens, a gas bug.
...
This fixes PR8114
llvm-svn: 113894
2010-09-14 23:34:29 +00:00
Dan Gohman
a2e5bf005e
Convert TBAA to use the new TBAATag field of AliasAnalysis::Location.
...
llvm-svn: 113892
2010-09-14 23:28:12 +00:00
Eric Christopher
c6075a71ad
Emit libcalls for SDIV, this requires some call infrastructure
...
that needs to be shared a bit more widely around.
llvm-svn: 113886
2010-09-14 23:03:37 +00:00
Jim Grosbach
d7e8d8c018
revert 113875 momentarilly. Need to fix the MC disassembler to handle the
...
change.
llvm-svn: 113878
2010-09-14 22:38:39 +00:00
Jim Grosbach
12d12f92ff
trailing whitespace cleanup
...
llvm-svn: 113877
2010-09-14 22:27:15 +00:00
Gabor Greif
8856ba094b
an attempt to salvage the darwin9-powerpc buildbot, which could be miscompiling this line
...
llvm-svn: 113876
2010-09-14 22:25:16 +00:00
Jim Grosbach
d338306232
The register specified for a dregpair is the corresponding Q register, so to
...
get the pair, we need to look up the sub-regs based on the qreg. Create a
lookup function since we don't have access to TargetRegisterInfo here to
be able to use getSubReg(ARM::dsub_[01]).
llvm-svn: 113875
2010-09-14 22:20:33 +00:00
Gabor Greif
a9a9743d0d
set isCompare for another three Thumb1 instructions
...
llvm-svn: 113867
2010-09-14 22:00:50 +00:00
Bob Wilson
3cef16bee1
Tidy whitespace in generated arm_neon.h.
...
llvm-svn: 113865
2010-09-14 21:52:34 +00:00
Jim Grosbach
a43d109cb3
Add predicate and 's' bit operands to PICADD instruction lowering.
...
llvm-svn: 113860
2010-09-14 21:28:17 +00:00
Benjamin Kramer
8304510f17
Add missing include.
...
llvm-svn: 113859
2010-09-14 21:25:38 +00:00
Dan Gohman
ebbc4df924
Remove the experimental AliasAnalysis::getDependency interface, which
...
isn't a good level of abstraction for memdep. Instead, generalize
AliasAnalysis::alias and related interfaces with a new Location
class for describing a memory location. For now, this is the same
Pointer and Size as before, plus an additional field for a TBAA tag.
Also, introduce a fixed MD_tbaa metadata tag kind.
llvm-svn: 113858
2010-09-14 21:25:10 +00:00
Bob Wilson
fcca92b837
Avoid warnings.
...
llvm-svn: 113857
2010-09-14 21:12:05 +00:00
Jim Grosbach
6ade4ae68d
fix comment typo
...
llvm-svn: 113856
2010-09-14 21:05:34 +00:00
Owen Anderson
788b93febd
Remove dead option from tests.
...
llvm-svn: 113855
2010-09-14 21:03:40 +00:00
Bob Wilson
1a69820d6d
Make NEON ld/st pseudo instruction classes take the instruction itinerary as
...
an argument, so that we can distinguish instructions with the same register
classes but different numbers of registers (e.g., vld3 and vld4). Fix some
of the non-pseudo NEON ld/st instruction itineraries to reflect the number
of registers loaded or stored, not just the opcode name.
llvm-svn: 113854
2010-09-14 20:59:49 +00:00
Owen Anderson
9f8f48f221
Remove the option to disable LazyValueInfo in JumpThreading, as it is now
...
on by default and has received significant testing.
llvm-svn: 113852
2010-09-14 20:57:41 +00:00
Benjamin Kramer
ca9351075a
Prune includes.
...
llvm-svn: 113850
2010-09-14 20:49:00 +00:00
Gabor Greif
32fefaf320
set comparable for a bunch of Thumb instructions
...
llvm-svn: 113849
2010-09-14 20:47:43 +00:00
Gabor Greif
bd0b1357e0
must not peephole away side effects
...
llvm-svn: 113848
2010-09-14 20:46:08 +00:00
Jim Grosbach
caaab2a7af
Don't ignore the CPSR implicit def when lowering a MachineInstruction to an MCInst.
...
llvm-svn: 113847
2010-09-14 20:41:27 +00:00
Jim Grosbach
c04a3f0ae5
Clarify comment
...
llvm-svn: 113846
2010-09-14 20:35:46 +00:00
Devang Patel
7e5ba98681
After Dan's recent commit this is no longer true.
...
Now isFunctionLocal is reset, if required, when operands are modified.
llvm-svn: 113845
2010-09-14 20:32:58 +00:00
Devang Patel
632686ac96
Use frame index, if available for byval argument while lowering dbg_declare. Otherwise let getRegForValue() find register for this argument.
...
llvm-svn: 113843
2010-09-14 20:29:31 +00:00
Gabor Greif
a37b447ba6
forgot the testcase change for r113839
...
llvm-svn: 113840
2010-09-14 09:30:17 +00:00
Gabor Greif
357e2fe748
Eliminate a 'tst' that immediately follows an 'and'
...
by morphing the 'and' to its recording form 'andS'.
This is basically a test commit into this area, to
see whether the bots like me. Several generalizations
can be applied and various avenues of code simplification
are open. I'll introduce those as I go.
I am aware of stylistic input from Bill Wendling, about
where put the analysis complexity, but I am positive
that we can move things around easily and will find a
satisfactory solution.
llvm-svn: 113839
2010-09-14 09:23:22 +00:00
Gabor Greif
40a8053a15
test for and-tst peephole optimization
...
documents the status-quo with its opportunities
llvm-svn: 113838
2010-09-14 08:50:43 +00:00
Eric Christopher
3d2aa0da5f
Fix QOpcode assignment to Opc.
...
llvm-svn: 113837
2010-09-14 08:31:25 +00:00
Michael J. Spencer
26fe225080
CBackend: Fix MSVC build.
...
This may produce warnings on MSVS, but it's better than failures.
llvm-svn: 113834
2010-09-14 04:27:38 +00:00
Michael J. Spencer
a845c8d2ff
CBackend: Cleanup whitespace before I do this next commit.
...
llvm-svn: 113833
2010-09-14 04:27:26 +00:00
Dan Gohman
2a6b987773
When a function-local value with function-local metadata uses gets RAUWed with a
...
non-function-local value, it may result in the metadata no longer needing to be
function-local. Check for this condition, and clear the isFunctionLocal flag, if
it's still in the uniquing map, since any node in the uniquing map needs to have
an accurate function-local flag.
Also, add an assert to help catch problematic cases.
llvm-svn: 113828
2010-09-14 01:37:57 +00:00
Eric Christopher
775de2ce4c
Remove apparently unnecessary forward declaration.
...
llvm-svn: 113827
2010-09-14 01:18:15 +00:00
Jakob Stoklund Olesen
0a9b86f575
Attempt to unbreak the FreeBSD buildbot by XFAILing a unit test that seems to be
...
miscompiled by the system gcc-4.2.1
The test remains enabled for the second-stage test.
llvm-svn: 113824
2010-09-14 00:51:58 +00:00
Chris Lattner
0718ff9be2
fix PR8102, a case where we'd copyValue from a value that we already
...
deleted. Fix this by doing the copyValue's before we delete stuff!
The testcase only repros the problem on my system with valgrind.
llvm-svn: 113820
2010-09-14 00:19:00 +00:00
Michael J. Spencer
90f807fda5
Revert "CMake: Get rid of LLVMLibDeps.cmake and export the libraries normally."
...
This reverts commit r113632
Conflicts:
cmake/modules/AddLLVM.cmake
llvm-svn: 113819
2010-09-13 23:59:48 +00:00
Bob Wilson
ba02d5b620
Convert some VTBL and VTBX instructions to use pseudo instructions prior to
...
register allocation. Remove the NEONPreAllocPass, which is no longer needed.
Yeah!!
llvm-svn: 113818
2010-09-13 23:55:10 +00:00
Jakob Stoklund Olesen
52d3045d23
Mechanically replace LiveInterval* with LiveIntervalMap for intervals being
...
edited without actually using LiveIntervalMap functionality.
llvm-svn: 113816
2010-09-13 23:29:11 +00:00
Jakob Stoklund Olesen
060ad376c4
Allow LiveIntervalMap to be reused by resetting the current live interval.
...
llvm-svn: 113815
2010-09-13 23:29:09 +00:00
Bob Wilson
6f35180bec
Switch all the NEON vld-lane and vst-lane instructions over to the new
...
pseudo-instruction approach. Change ARMExpandPseudoInsts to use a table
to record all the NEON load/store information.
llvm-svn: 113812
2010-09-13 23:01:35 +00:00
Jakob Stoklund Olesen
0e83d54b2a
Let's just declare that it is impossible to construct a std::pair from a null
...
pointer and work around that.
llvm-svn: 113788
2010-09-13 21:29:45 +00:00
Devang Patel
f7241b22aa
Fix typo in temp. script file name.
...
llvm-svn: 113787
2010-09-13 21:23:17 +00:00
Dale Johannesen
eb807a15a3
Fix typos. 128-bit PSHUFB takes 128-bit memory op.
...
v8i16 is not an MMX type; put it where it belongs.
llvm-svn: 113785
2010-09-13 21:15:43 +00:00
Dale Johannesen
e788b5e436
Basic smoke test for new x86mmx type.
...
llvm-svn: 113783
2010-09-13 21:01:36 +00:00
Devang Patel
5ecedb1e38
Add little test script to check debug info.
...
llvm-svn: 113779
2010-09-13 20:42:15 +00:00