Dan Gohman
e0386dbef1
Convert TBAA to use the new TBAATag field of AliasAnalysis::Location.
...
llvm-svn: 113892
2010-09-14 23:28:12 +00:00
Eric Christopher
8b9126694d
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
c07b2afe5e
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
29cad6c2fc
trailing whitespace cleanup
...
llvm-svn: 113877
2010-09-14 22:27:15 +00:00
Gabor Greif
b54e9387ab
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
b523be2bb3
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
22f6922505
set isCompare for another three Thumb1 instructions
...
llvm-svn: 113867
2010-09-14 22:00:50 +00:00
Jim Grosbach
a244f70113
Add predicate and 's' bit operands to PICADD instruction lowering.
...
llvm-svn: 113860
2010-09-14 21:28:17 +00:00
Dan Gohman
41f14cf3e9
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
62e9a052b9
Avoid warnings.
...
llvm-svn: 113857
2010-09-14 21:12:05 +00:00
Jim Grosbach
7ae94222cd
fix comment typo
...
llvm-svn: 113856
2010-09-14 21:05:34 +00:00
Bob Wilson
dd29db5635
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
d361aac3d0
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
Gabor Greif
2afac8e9bd
set comparable for a bunch of Thumb instructions
...
llvm-svn: 113849
2010-09-14 20:47:43 +00:00
Gabor Greif
f08b36d386
must not peephole away side effects
...
llvm-svn: 113848
2010-09-14 20:46:08 +00:00
Jim Grosbach
cf98cbaef1
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
bc7eeaf233
Clarify comment
...
llvm-svn: 113846
2010-09-14 20:35:46 +00:00
Devang Patel
e4682fa8e2
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
d0cef1e2ef
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
Eric Christopher
726838a3e5
Fix QOpcode assignment to Opc.
...
llvm-svn: 113837
2010-09-14 08:31:25 +00:00
Michael J. Spencer
511dce004e
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
e7d173af89
CBackend: Cleanup whitespace before I do this next commit.
...
llvm-svn: 113833
2010-09-14 04:27:26 +00:00
Dan Gohman
e1328dc0e9
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
Chris Lattner
f1144f0929
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
93c9b2ea93
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
c597fd3b4a
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
614e13936a
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
36dad6db7c
Allow LiveIntervalMap to be reused by resetting the current live interval.
...
llvm-svn: 113815
2010-09-13 23:29:09 +00:00
Bob Wilson
d5c57a5ed4
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
535e8e5f60
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
Dale Johannesen
1eea351920
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
Benjamin Kramer
65550d7cea
Fix linux/msvc build, move include.
...
llvm-svn: 113776
2010-09-13 20:04:49 +00:00
Owen Anderson
0bf2a926f2
Minimize #includes in a top-level header.
...
llvm-svn: 113772
2010-09-13 18:47:42 +00:00
Eric Christopher
79127ab3f5
Silence more warnings. Two more unused variables.
...
llvm-svn: 113771
2010-09-13 18:30:57 +00:00
Eric Christopher
e3a89f9f9c
Remove unused variable.
...
llvm-svn: 113769
2010-09-13 18:27:59 +00:00
Jim Grosbach
7aeff13cae
trailing whitespace
...
llvm-svn: 113768
2010-09-13 18:25:42 +00:00
Eric Christopher
5f878349ee
Silence some constructor ordering warnings.
...
llvm-svn: 113767
2010-09-13 18:25:05 +00:00
John Thompson
1094c80281
Added skeleton for inline asm multiple alternative constraint support.
...
llvm-svn: 113766
2010-09-13 18:15:37 +00:00
Dan Gohman
bbcd04dbcc
Add full auto-upgrade support for LLVM 2.7 bitcode metadata.
...
llvm-svn: 113764
2010-09-13 18:00:48 +00:00
Owen Anderson
c237a849e3
Re-apply r113679, which was reverted in r113720, which added a paid of new instcombine transforms
...
to expose greater opportunities for store narrowing in codegen. This patch fixes a potential
infinite loop in instcombine caused by one of the introduced transforms being overly aggressive.
llvm-svn: 113763
2010-09-13 17:59:27 +00:00
Rafael Espindola
9fd2ed9243
Factoring and potential bug fix. The elf "flags" cannot be used as masks.
...
For example, setting STT_OBJECT (1) and STT_FUNC (2), should not produce
a STT_SECTION (3).
llvm-svn: 113759
2010-09-13 17:39:45 +00:00
Michael J. Spencer
ff24bf78ea
CMake: Fix MSVS build. Although I don't know why this didn't break other build systems...
...
This problem is unrelated to the recent dependency tracking change. It
seems like noone noticed the problem because I don't think anyone compiles
any target other than X86 on windows.
llvm-svn: 113727
2010-09-12 18:32:57 +00:00
Eric Christopher
26abd3e0c2
Revert 113679, it was causing an infinite loop in a testcase that I've sent
...
on to Owen.
llvm-svn: 113720
2010-09-12 06:09:23 +00:00
Michael J. Spencer
d3dc222d09
CMake: Fix mingw32 build.
...
llvm-svn: 113712
2010-09-12 03:47:31 +00:00
Chris Lattner
1bbb14ab8f
add a missed cmov alias, part of rdar://8416805
...
llvm-svn: 113693
2010-09-11 17:08:22 +00:00
Chris Lattner
3340c3e86c
add support for all the setCC aliases. Part of rdar://8416805
...
llvm-svn: 113692
2010-09-11 17:06:05 +00:00
Rafael Espindola
12d73d1f18
Add support for leb128 of absolute expressions.
...
llvm-svn: 113691
2010-09-11 16:45:15 +00:00
Chris Lattner
b47c042e09
add support for pushfd/popfd which are aliases for pushfl/popfl.
...
This fixes rdar://8408129 - pushfd and popfd get invalid instruction mnemonic errors
llvm-svn: 113690
2010-09-11 16:39:16 +00:00
Chris Lattner
30561aba20
implement rdar://8407928 - support for in/out with a missing "a" register.
...
llvm-svn: 113689
2010-09-11 16:32:12 +00:00
Chris Lattner
a2a9d16b78
fix the asmparser so that the target is responsible for skipping to
...
the end of the line on a parser error, allowing skipping to happen
for syntactic errors but not for semantic errors. Before we would
miss emitting a diagnostic about the second line, because we skipped
it due to the semantic error on the first line:
foo %eax
bar %al
This fixes rdar://8414033 - llvm-mc ignores lines after an invalid instruction mnemonic errors
llvm-svn: 113688
2010-09-11 16:18:25 +00:00