Jim Grosbach
789ca9a1e9
Refactor uses of getRegisterNumbering() to not need the isSPVFP argument. Check
...
if the register is a member of the SPR register class directly instead.
llvm-svn: 114012
2010-09-15 19:44:57 +00:00
Jim Grosbach
29fe94e75e
Reduce dependencies in the ARM MC instruction printer.
...
llvm-svn: 114009
2010-09-15 19:27:50 +00:00
Jim Grosbach
2b48b5557a
Fix spelling typo.
...
llvm-svn: 114008
2010-09-15 19:26:50 +00:00
Jim Grosbach
91fbd8f86e
Factor out basic enums and hleper functions from ARM.h for cleaner sharing
...
between the compiler back end and the MC libraries.
llvm-svn: 114007
2010-09-15 19:26:06 +00:00
Jim Grosbach
7bbf3fd0d6
Add support for floating point immediates to MC instruction printing. ARM
...
VFP instructions use it for loading some constants, so implement that
handling.
Not thrilled with adding a member to MCOperand, but not sure there's much of
a better option that's not pretty fragile (like putting a double in the
union instead and just assuming that's good enough). Suggestions welcome...
llvm-svn: 113996
2010-09-15 18:47:08 +00:00
Devang Patel
46b96c4ba0
Check bb to ensure that alloca is in separate basic block.
...
This fixes funcargs.exp regression reported by gdb testsuite.
llvm-svn: 113992
2010-09-15 18:13:55 +00:00
Jakob Stoklund Olesen
33005d1327
Recognize VST1q64Pseudo and VSTMQ as stack slot stores.
...
Recognize VLD1q64Pseudo as a stack slot load.
Reject these if they are loading or storing a subregister. The API (and
VirtRegRewriter) doesn't know how to deal with that.
llvm-svn: 113985
2010-09-15 17:27:09 +00:00
Bob Wilson
660d7ecf32
Reapply Gabor's 113839, 113840, and 113876 with a fix for a problem
...
encountered while building llvm-gcc for arm. This is probably the same issue
that the ppc buildbot hit. llvm::prior works on a MachineBasicBlock::iterator,
not a plain MachineInstr.
llvm-svn: 113983
2010-09-15 17:12:08 +00:00
Gabor Greif
9ae4b271f2
the darwin9-powerpc buildbot keeps consistently crashing,
...
backing out following to get it back to green,
so I can investigate in peace:
svn merge -c -113840 llvm/test/CodeGen/ARM/arm-and-tst-peephole.ll
svn merge -c -113876 -c -113839 llvm/lib/Target/ARM/ARMBaseInstrInfo.cpp
llvm-svn: 113980
2010-09-15 16:53:07 +00:00
Jakob Stoklund Olesen
11f5be3b86
Move ARM is{LoadFrom,StoreTo}StackSlot closer to their siblings so they won't be
...
forgotten in the future.
Coalesce identical cases in switch.
No functional changes intended.
llvm-svn: 113979
2010-09-15 16:36:26 +00:00
Bob Wilson
2c00b5098a
Spelling fix.
...
llvm-svn: 113978
2010-09-15 16:28:21 +00:00
Jim Grosbach
3122c82089
trailing whitespace and 80 column cleanup
...
llvm-svn: 113977
2010-09-15 16:24:01 +00:00
Jim Grosbach
0d8971f0d0
trailing whitespace
...
llvm-svn: 113975
2010-09-15 16:08:15 +00:00
Mikhail Glushenkov
0c99d12208
llvmc: make -x work with unknown suffixes.
...
llvm-svn: 113972
2010-09-15 15:20:41 +00:00
Garrison Venn
851b323866
Removed TracingBrainF from examples Makefile.
...
llvm-svn: 113970
2010-09-15 14:55:32 +00:00
Devang Patel
da25de8096
If dbg.declare from non-entry block is using alloca from entry block then use offset available in StaticAllocaMap to emit DBG_VALUE. Right now, this has no material impact because varible info also collected using offset table maintained in machine module info.
...
llvm-svn: 113967
2010-09-15 14:48:53 +00:00
Duncan Sands
b8e87d81bf
Release-Asserts no longer exists.
...
llvm-svn: 113965
2010-09-15 12:30:35 +00:00
Duncan Sands
c288cda3d5
Remove the Ada bindings which are unmaintained and unused. The project which
...
was the main putative user of the binding is actually maintaining its own
different binding, see http://git.ada.cx/cgi-bin/cgit.cgi/draco.git/
llvm-svn: 113960
2010-09-15 08:17:10 +00:00
Duncan Sands
e69aeaac8b
Remove LLVM_GLOBAL_VISIBILITY, which is unused, and was not working properly.
...
The problem was that the test for whether a compiler supports it or not was
inaccurate, but has to be accurate: LLVM_LOCAL_VISIBILITY is an optimization
and not needed for correctness, so wrongly thinking a compiler doesn't support
it is not a big deal, but LLVM_GLOBAL_VISIBILITY is for correctness, and not
an optimization: getting it wrong is fatal: it needs to be set based on a
configure test not testing the gcc version. Since dragonegg has moved to a
different scheme, and it was the only user of LLVM_GLOBAL_VISIBILITY, just
remove this macro.
llvm-svn: 113959
2010-09-15 08:09:55 +00:00
Chris Lattner
ee7e6f42f8
lcall and ljmp always default to lcalll and ljmpl. This finally
...
wraps up r8418316
llvm-svn: 113949
2010-09-15 05:30:20 +00:00
Chris Lattner
09bfe645f6
apparently jmpl $1,$2 is an alias for ljmpl, similiarly
...
for call. Add this.
llvm-svn: 113948
2010-09-15 05:25:21 +00:00
Chris Lattner
6757eae45e
Disambiguate lcall/ljmp to the 32-bit version. This happens
...
even in 64-bit mode apparently.
llvm-svn: 113945
2010-09-15 05:14:54 +00:00
Chris Lattner
5be87c619b
fix the encoding of sldt GR16 to have the 0x66 prefix, and
...
add sldt GR32, which isn't documented in the intel manual
but which gas accepts. Part of rdar://8418316
llvm-svn: 113938
2010-09-15 04:45:10 +00:00
Chris Lattner
6b40b0def1
implement aliases for shld/shrd, part of rdar://8418316
...
llvm-svn: 113937
2010-09-15 04:37:18 +00:00
Chris Lattner
4bd21710b6
fix rdar://8431880 - rcl/rcr with no shift amount not recognized
...
llvm-svn: 113936
2010-09-15 04:33:27 +00:00
Chris Lattner
81ce173860
add various broken forms of fnstsw. I didn't add the %rax
...
version because it adds a prefix and makes even less sense
than the other broken forms. This wraps up rdar://8431422
llvm-svn: 113932
2010-09-15 04:15:16 +00:00
Chris Lattner
7df35dbd19
add some aliases for f[u]comi, part of rdar://8431422
...
llvm-svn: 113930
2010-09-15 04:08:38 +00:00
Chris Lattner
4dbcba0082
add a bunch of aliases for fp operations with no operand,
...
rdar://8431422
llvm-svn: 113929
2010-09-15 04:04:33 +00:00
Michael J. Spencer
46d4cc2ef7
test: Fix coff-dump section array indicies to 1 based to match file format.
...
llvm-svn: 113928
2010-09-15 03:58:51 +00:00
Michael J. Spencer
5d2c9acbdf
Tabs to spaces
...
llvm-svn: 113927
2010-09-15 03:58:39 +00:00
Michael J. Spencer
8ae7922a89
Cleanup coff-dump.py
...
llvm-svn: 113926
2010-09-15 03:58:24 +00:00
Daniel Dunbar
3b2ad1d045
lit: Expose FileBasedTest object and Test module via 'lit' object that gets
...
exposed to config files.
llvm-svn: 113923
2010-09-15 03:52:38 +00:00
Daniel Dunbar
2c11b449e0
lit: Rename main lit module to main.py, lit/lit/lit.py was a bit too, err,
...
alliterate.
llvm-svn: 113922
2010-09-15 03:52:31 +00:00
Chris Lattner
d28452d94a
Diagnose invalid instructions like "incl" with "too few operands for instruction"
...
instead of crashing. This fixes:
rdar://8431815 - crash when invalid operand is one that isn't present
llvm-svn: 113921
2010-09-15 03:50:11 +00:00
Bob Wilson
02d6467291
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
b1e9d4bff1
Use VLD1/VST1 pseudo instructions for loadRegFromStackSlot and
...
storeRegToStackSlot.
llvm-svn: 113918
2010-09-15 01:48:05 +00:00
Jim Grosbach
95ede4d3b6
trailing whitespace
...
llvm-svn: 113915
2010-09-15 01:01:45 +00:00
Dale Johannesen
51fd822634
Add x86MMX a few more places.
...
llvm-svn: 113914
2010-09-15 00:52:23 +00:00
Chris Lattner
67e534505d
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
c7cf42d80b
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
5f2311dc29
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
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
Bob Wilson
86ac3fc9af
Tidy whitespace in generated arm_neon.h.
...
llvm-svn: 113865
2010-09-14 21:52:34 +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
Benjamin Kramer
36e54c9943
Add missing include.
...
llvm-svn: 113859
2010-09-14 21:25:38 +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
Owen Anderson
f6fe577e88
Remove dead option from tests.
...
llvm-svn: 113855
2010-09-14 21:03:40 +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
Benjamin Kramer
7fc3f5d0f7
Prune includes.
...
llvm-svn: 113850
2010-09-14 20:49:00 +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
34ac246538
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
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
00e34f4b32
forgot the testcase change for r113839
...
llvm-svn: 113840
2010-09-14 09:30:17 +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
Gabor Greif
5dbe800203
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
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
Eric Christopher
6d87fab8a4
Remove apparently unnecessary forward declaration.
...
llvm-svn: 113827
2010-09-14 01:18:15 +00:00
Jakob Stoklund Olesen
e1e70b93ca
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
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
Devang Patel
42be03b4a0
Fix typo in temp. script file name.
...
llvm-svn: 113787
2010-09-13 21:23:17 +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
Dale Johannesen
b1248ffe9d
Basic smoke test for new x86mmx type.
...
llvm-svn: 113783
2010-09-13 21:01:36 +00:00
Devang Patel
ddc68dd3a1
Add little test script to check debug info.
...
llvm-svn: 113779
2010-09-13 20:42:15 +00:00
Benjamin Kramer
65550d7cea
Fix linux/msvc build, move include.
...
llvm-svn: 113776
2010-09-13 20:04:49 +00:00
Owen Anderson
43f9831376
Attempt to fix the Linux build.
...
llvm-svn: 113773
2010-09-13 19:47:32 +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
Owen Anderson
fe12f23024
Add a reduced testcase for the infinite loop fixed in r113763.
...
llvm-svn: 113770
2010-09-13 18:28:40 +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
80e85e72b6
Use ParseIRFile to auto-detect LLVM Assembly automatically.
...
llvm-svn: 113765
2010-09-13 18:02:47 +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
Michael J. Spencer
885611b42b
CMake: Add llvm-lit to CMake build.
...
llvm-svn: 113762
2010-09-13 17:52:38 +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
Bob Wilson
e44f298674
Fix formatting tags.
...
llvm-svn: 113758
2010-09-13 17:39:35 +00:00
Bob Wilson
46d6580ccf
Document NEON intrinsic changes for 2.8.
...
llvm-svn: 113757
2010-09-13 17:37:55 +00:00
Duncan Sands
17cd907b6b
Nowadays a release build has assertions off.
...
llvm-svn: 113747
2010-09-13 13:45:33 +00:00
Duncan Sands
df65e14397
Spelling fixes in comments.
...
llvm-svn: 113746
2010-09-13 13:32:22 +00:00
Dale Johannesen
6960d4a83d
Fix comment typo.
...
llvm-svn: 113728
2010-09-12 22:36:13 +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
cb67a14b3e
add some documentation for the most important MC-level classes along with
...
an overview of mc and the idea of the code emission phase.
llvm-svn: 113707
2010-09-11 23:02:10 +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
Rafael Espindola
6e321507b6
Add missing single quotes.
...
llvm-svn: 113687
2010-09-11 15:45:48 +00:00
Rafael Espindola
2833e392ab
Change section_data dumping to print hex numbers instead of using
...
python's %r.
llvm-svn: 113685
2010-09-11 15:25:58 +00:00
Owen Anderson
70f4524427
Invert and-of-or into or-of-and when doing so would allow us to clear bits of the and's mask.
...
This can result in increased opportunities for store narrowing in code generation. Update a number of
tests for this change. This fixes <rdar://problem/8285027>.
Additionally, because this inverts the order of ors and ands, some patterns for optimizing or-of-and-of-or
no longer fire in instances where they did originally. Add a simple transform which recaptures most of these
opportunities: if we have an or-of-constant-or and have failed to fold away the inner or, commute the order
of the two ors, to give the non-constant or a chance for simplification instead.
llvm-svn: 113679
2010-09-11 05:48:06 +00:00
Michael J. Spencer
7c3a5ee996
CMake: Fix mingw32 build.
...
llvm-svn: 113676
2010-09-11 02:13:39 +00:00
Dale Johannesen
3a12890338
Add x86mmx to TableGen.
...
llvm-svn: 113671
2010-09-11 00:16:46 +00:00
Bill Wendling
27dddd1fd1
Rename ConvertToSetZeroFlag to something more general.
...
llvm-svn: 113670
2010-09-11 00:13:50 +00:00
Bill Wendling
d0a5f4e238
No need to recompute the SrcReg and CmpValue.
...
llvm-svn: 113666
2010-09-10 23:46:12 +00:00
Bill Wendling
041230014c
Move some of the decision logic for converting an instruction into one that sets
...
the 'zero' bit down into the back-end. There are other cases where this logic
isn't sufficient, so they should be handled separately.
llvm-svn: 113665
2010-09-10 23:34:19 +00:00
Eric Christopher
72497e5d90
Start sketching out ARM fast-isel calls.
...
llvm-svn: 113662
2010-09-10 23:18:12 +00:00
Eric Christopher
cc766a20d3
For consistency.
...
llvm-svn: 113659
2010-09-10 23:10:30 +00:00
Eric Christopher
cc1367851b
Newline at end of file.
...
llvm-svn: 113654
2010-09-10 22:46:03 +00:00
Bob Wilson
f3ecfd0e53
Fix a comment typo.
...
llvm-svn: 113653
2010-09-10 22:42:21 +00:00
Eric Christopher
1c06917f15
Split out some of the calling convention bits so that they can be
...
used for fast-isel.
llvm-svn: 113652
2010-09-10 22:42:06 +00:00
Benjamin Kramer
8c35fb0739
Teach InstructionSimplify to fold (A & B) & A -> A & B and (A | B) | A -> A | B.
...
Reassociate does this but it doesn't catch all cases (e.g. if the operands are i1).
llvm-svn: 113651
2010-09-10 22:39:55 +00:00
Gabor Greif
2f5f696b66
typoes
...
llvm-svn: 113647
2010-09-10 22:25:58 +00:00
Dale Johannesen
95b67aff5b
Add missing X86 MMX declarations. Hopefully fixes buildbot?
...
llvm-svn: 113643
2010-09-10 21:58:02 +00:00
Bill Wendling
aee679bf35
Modify the comparison optimizations in the peephole optimizer to update the
...
iterator when an optimization took place. This allows us to do more insane
things with the code than just remove an instruction or two.
llvm-svn: 113640
2010-09-10 21:55:43 +00:00
Jim Grosbach
1f77ee5691
Add a missing case to duplicateCPV() for LSDA constants. Add a FIXME. rdar://8302157
...
llvm-svn: 113637
2010-09-10 21:38:22 +00:00
Michael J. Spencer
dc38d36ccb
CMake: Get rid of LLVMLibDeps.cmake and export the libraries normally.
...
llvm-svn: 113632
2010-09-10 21:14:25 +00:00
Dale Johannesen
baa5d045c9
Add X86 MMX type to bitcode and Type.
...
(The Ada bindings probably need it too, but all the
obvious places to change say "do not edit this file".)
llvm-svn: 113618
2010-09-10 20:55:01 +00:00
Bill Wendling
55165fed5d
Use StringRef which performs the "early exit" when compared against a constant
...
string.
llvm-svn: 113615
2010-09-10 20:42:26 +00:00
Devang Patel
6095d818e5
Add DEBUG message.
...
llvm-svn: 113614
2010-09-10 20:32:09 +00:00
Bill Wendling
798725b24d
Reapply r113585. The msvc machine is mercurial.
...
llvm-svn: 113610
2010-09-10 20:20:28 +00:00
Benjamin Kramer
77ab138f84
This transform is also performed by InstructionSimplify, remove the duplicate.
...
llvm-svn: 113608
2010-09-10 19:52:35 +00:00
Bill Wendling
a9c9aaa839
r113585 was causing clang-i686-xp-msvc9 to fail in mysterious ways that I can't
...
understand (the log file was no help).
llvm-svn: 113605
2010-09-10 19:20:47 +00:00
Bill Wendling
6a57e249df
Early exit with simple checks.
...
llvm-svn: 113603
2010-09-10 19:06:58 +00:00
Bill Wendling
e26fffc597
Auto-upgrade the magic ".llvm.eh.catch.all.value" global to
...
"llvm.eh.catch.all.value". Only the name needs to be changed.
llvm-svn: 113600
2010-09-10 18:51:56 +00:00
Bob Wilson
ed19768cec
Calculate the number of VLDM/VSTM registers by subtracting the number of
...
fixed operands from the total number of operands (including the variadic ones).
llvm-svn: 113597
2010-09-10 18:25:35 +00:00
Owen Anderson
d85c9ccdba
Lower the unrolling theshold to 150. Empirical tests indicate that this is a sweet spot in the performance per
...
code size increase curve.
llvm-svn: 113595
2010-09-10 17:57:00 +00:00
Dale Johannesen
35fde493c2
x86mmx is 64 bits.
...
llvm-svn: 113594
2010-09-10 17:51:47 +00:00
Jim Grosbach
b082903fad
add a comment explicitly calling out that allocation orders may include
...
reserved regs and that register allocators need to explicitly check for
them.
llvm-svn: 113593
2010-09-10 17:51:34 +00:00
Bill Wendling
638a098f72
Mark the sse_load_f32 and sse_load_f64 load patterns as having memoperands so
...
that the memoperands are properly set after DAG building and general mucking
about.
llvm-svn: 113585
2010-09-10 10:34:22 +00:00
Bill Wendling
ac0ad0f634
Reword since this may not be a bug but intended behavior.
...
llvm-svn: 113584
2010-09-10 10:31:11 +00:00
NAKAMURA Takumi
9c8a97ce0a
Makefile.rules: LOADABLE_MODULE/Win32: "all" components may be linked
...
only when ENABLE_SHARED=1.
Loadable module for Win32 requires all symbols resolved for linking.
llvm-svn: 113579
2010-09-10 06:27:02 +00:00
NAKAMURA Takumi
217cadd434
Don't build redundant libLLVMgold.a.
...
Building archive would be executed due to definition of BUILD_ARCHIVE,
even if BUILD_ARCHIVE = "0".
llvm-svn: 113578
2010-09-10 06:26:57 +00:00
Evan Cheng
1d6aa46cd7
Fix test so it passes on non-Darwin hosts.
...
llvm-svn: 113577
2010-09-10 06:20:01 +00:00
Bob Wilson
8617234658
Fix merging base-updates for VLDM/VSTM: Before I switched these instructions
...
to use AddrMode4, there was a count of the registers stored in one of the
operands. I changed that to just count the operands but forgot to adjust for
the size of D registers. This was noticed by Evan as a performance problem
but it is a potential correctness bug as well, since it is possible that this
could merge a base update with a non-matching immediate.
llvm-svn: 113576
2010-09-10 05:15:04 +00:00