Craig Topper
ecf21d8132
Add X86 assembler and disassembler support for AMD SVM instructions. Original patch by Kay Tiong Khoo. Few tweaks by me for code density and to reduce replication.
...
llvm-svn: 150873
2012-02-18 08:19:49 +00:00
Chandler Carruth
6f19135606
Trivial cleanup to group the generic 'armvN' cases with the 'arm' case,
...
etc. No functionality changed.
llvm-svn: 150867
2012-02-18 04:34:17 +00:00
Eli Friedman
be89455c98
Fix a rather nasty regression from r150690: LHS != RHS does not imply LHS->stripPointerCasts() != RHS->stripPointerCasts().
...
llvm-svn: 150863
2012-02-18 03:29:25 +00:00
Chad Rosier
617f581b49
Fix documentation.
...
llvm-svn: 150860
2012-02-18 01:38:41 +00:00
Eric Christopher
c2e76f573d
Testcase for the previous commit.
...
llvm-svn: 150852
2012-02-18 00:05:45 +00:00
Lang Hames
095e9964bd
Bring HMEditor into line with LLVM coding standards.
...
llvm-svn: 150851
2012-02-17 23:43:40 +00:00
Eric Christopher
325985565a
Ignore the lifetime intrinsics in fast-isel.
...
llvm-svn: 150848
2012-02-17 23:03:39 +00:00
Jakob Stoklund Olesen
4aa0e7c7c4
Don't print out pointer values in SUnit::dump().
...
llvm-svn: 150842
2012-02-17 21:44:51 +00:00
Matt Beaumont-Gay
a45b6e23d0
Sink variable into assert
...
llvm-svn: 150841
2012-02-17 21:40:48 +00:00
Lang Hames
27171ecf20
Add support for regmask slots to HMEditor. Also fixes a comment error.
...
llvm-svn: 150840
2012-02-17 21:29:41 +00:00
Kevin Enderby
36596f0ae8
Fix typo in comment ldopen() -> dlopen().
...
llvm-svn: 150836
2012-02-17 19:26:00 +00:00
Jakob Stoklund Olesen
c22a5531d8
Handle regmask operands in ARMInstrInfo.
...
llvm-svn: 150833
2012-02-17 19:23:15 +00:00
Kevin Enderby
ba7e6a7525
Put back the initializing the targets in the disassembler API with a comment as
...
to why this is needed. This broke the darwin's otool(1) program. This change
was made in r144385.
llvm-svn: 150832
2012-02-17 19:18:29 +00:00
Jakob Stoklund Olesen
dc42602f74
Fix ARMBaseInstrInfo::getInstrLatency for calls.
...
Calls always clobber CPSR.
llvm-svn: 150831
2012-02-17 19:07:59 +00:00
Jakob Stoklund Olesen
bde432b917
Transfer regmasks to MRI.
...
MRI keeps track of which physregs have been used. Make sure it gets
updated with all the regmask-clobbered registers.
Delete the closePhysRegsUsed() function which isn't necessary.
llvm-svn: 150830
2012-02-17 19:07:56 +00:00
Dan Gohman
71b80f9e8c
Calls and invokes with the new clang.arc.no_objc_arc_exceptions
...
metadata may still unwind, but only in ways that the ARC
optimizer doesn't need to consider. This permits more
aggressive optimization.
llvm-svn: 150829
2012-02-17 18:59:53 +00:00
Lang Hames
ed9553242f
Refactor 'handleMove' code in live intervals. Clients of LiveIntervals won't see
...
any changes.
Internally this adds a private inner class HMEditor, to LiveIntervals. HMEditor provides
an API for updating live intervals when code is moved or bundled.
llvm-svn: 150826
2012-02-17 18:44:18 +00:00
Dan Gohman
eb02ab2f74
Remove a comment about an alternative approach that wouldn't
...
actually work, at least as described. LLVM Metadata is not
intended to suppress LLVM IR rules, as it can be stripped at
any time.
llvm-svn: 150821
2012-02-17 18:33:38 +00:00
Jim Grosbach
f636a3204d
Tidy up.
...
llvm-svn: 150820
2012-02-17 17:35:10 +00:00
David Chisnall
57bacb511d
Generate the correct EH frame section types on Solaris, this time without breaking other platforms...
...
llvm-svn: 150819
2012-02-17 17:31:15 +00:00
David Chisnall
d237b9b330
Revert r150814. It turns out that there is a good reason for this after all...
...
llvm-svn: 150818
2012-02-17 16:51:02 +00:00
Jakob Stoklund Olesen
355efd71af
Revert r150288, "Allow Post-RA LICM to hoist reserved register reads."
...
This caused miscompilations on out-of-tree targets, and possibly i386 as
well.
I'll find some other way of hoisting %rip-relative loads from loops
containing calls.
llvm-svn: 150816
2012-02-17 16:40:44 +00:00
Richard Osborne
46a58bd8f2
Fix typo in comment.
...
llvm-svn: 150815
2012-02-17 16:39:47 +00:00
David Chisnall
6c7c6fe0c2
Don't lazily allocate eh_frame. We're not lazily allocating things like the LSDA, which are only used when the eh frame is used, so this lazy allocation doesn't really make sense.
...
Fix the type of eh_frame on Solaris so that Sun ld doesn't fail to combine them (thus making it impossible for the unwind library to find them and breaking exceptions).
llvm-svn: 150814
2012-02-17 16:32:07 +00:00
David Chisnall
d5d4804858
... and it's probably best to use the correct alignment, rather than just guessing that it's the same as the size.
...
llvm-svn: 150813
2012-02-17 16:30:39 +00:00
David Chisnall
86b0f069d6
It turns out that putting an 8-byte symbol in a 4-byte section makes Solaris ld sulk. GNU ld is perfectly happy with it, which is worrying for a whole other set of reasons...
...
Thanks to Anton, Duncan and Rafael for helping me track this down.
Pointy hat to Rafael for introducing the bug in the first place.
llvm-svn: 150811
2012-02-17 16:05:50 +00:00
Nick Lewycky
a37a7e5a0f
Remove question.
...
llvm-svn: 150809
2012-02-17 09:55:20 +00:00
Jia Liu
cd92ae4cf2
remove Emacs-tag form .cpp files in Mips Backend, and fix some typo.
...
llvm-svn: 150805
2012-02-17 08:55:11 +00:00
Eric Christopher
61e7e5c8c9
Typo in variable name.
...
llvm-svn: 150796
2012-02-17 07:08:46 +00:00
Craig Topper
a25b84d986
Remove the last of the old vector_shuffle patterns from X86 isel.
...
llvm-svn: 150795
2012-02-17 07:02:34 +00:00
Nick Lewycky
a5a53772d9
Add support for invariant.start inside the static constructor evaluator. This is
...
useful to represent a variable that is const in the source but can't be constant
in the IR because of a non-trivial constructor. If globalopt evaluates the
constructor, and there was an invariant.start with no matching invariant.end
possible, it will mark the global constant afterwards.
llvm-svn: 150794
2012-02-17 06:59:21 +00:00
Akira Hatanaka
e232ee7225
Do not promote i32 arguments to i64. This was causing unnecessary sign extension
...
instructions to be emitted.
llvm-svn: 150782
2012-02-17 02:20:26 +00:00
Bill Wendling
1c92c9b270
Remove redundant comment. Use a more efficient datatype.
...
llvm-svn: 150780
2012-02-17 02:12:54 +00:00
Bill Wendling
b2fd149709
Fix some grammar-os and formatting.
...
llvm-svn: 150779
2012-02-17 02:09:28 +00:00
Lang Hames
a8cd3b538d
Reverse iterator - should be incrementing rather than decrementing.
...
llvm-svn: 150778
2012-02-17 01:54:11 +00:00
Jia Liu
ecc08b8cfe
add Emacs tag and fix some comment error in file headers
...
llvm-svn: 150775
2012-02-17 01:23:50 +00:00
Chad Rosier
7867a0bd92
[fast-isel] Add support for returning non-legal types with no sign- or zero-
...
entend flag.
llvm-svn: 150774
2012-02-17 01:21:28 +00:00
Lang Hames
dd3a5d8e78
MachineScheduler shouldn't use/preserve LiveDebugVariables.
...
llvm-svn: 150773
2012-02-17 01:11:37 +00:00
Lang Hames
680ee0f7e0
Oops - isRegLiveIntoSuccessor is used in non-assert builds now. Remove NDEBUG guards.
...
llvm-svn: 150771
2012-02-17 00:51:32 +00:00
Lang Hames
99cd3c4b9e
Re-enable 150652 and 150654 - Make FPSCR non-reserved, and make MachineCSE bail on reserved registers. This *should* be safe as of r150786.
...
llvm-svn: 150769
2012-02-17 00:27:16 +00:00
Lang Hames
89b5263016
Turn off assertion, conservatively compute liveness for live-in un-allocatable registers.
...
llvm-svn: 150768
2012-02-17 00:18:18 +00:00
Akira Hatanaka
246b3dd5d2
Remove comment.
...
llvm-svn: 150739
2012-02-16 22:52:29 +00:00
Chad Rosier
63d3cbe3db
Remove unnecessary assignment to temporary, ResultReg.
...
llvm-svn: 150737
2012-02-16 22:45:33 +00:00
Bill Wendling
c137296347
Use –mcpu=generic, so that the test will not fail when run on an Intel Atom
...
processor, due to the Atom scheduler producing an instruction sequence that is
different from that which is expected.
Patch by Michael Spencer!
llvm-svn: 150736
2012-02-16 22:42:48 +00:00
Chad Rosier
5018a2b828
Update credits.
...
llvm-svn: 150715
2012-02-16 18:54:41 +00:00
Jakob Stoklund Olesen
cb44c598a2
Note x86 regmask operands in release notes.
...
llvm-svn: 150712
2012-02-16 18:22:39 +00:00
Jakob Stoklund Olesen
028db3e0e3
Remove the YMM_HI_6_15 hack.
...
Call clobbers are now represented with register mask operands. The
regmask can easily represent the fact that xmm6 is call-preserved while
ymm6 isn't. This is automatically computed by TableGen from the
CalleeSavedRegs containing xmm6.
llvm-svn: 150709
2012-02-16 17:56:06 +00:00
Jakob Stoklund Olesen
b498ebe5b7
Use the same CALL instructions for Windows as for everything else.
...
The different calling conventions and call-preserved registers are
represented with regmask operands that are added dynamically.
llvm-svn: 150708
2012-02-16 17:56:02 +00:00
Akira Hatanaka
1593eafa1e
Remove trailing whitespace. Add newline.
...
llvm-svn: 150706
2012-02-16 17:48:20 +00:00
Benjamin Kramer
814de25917
Disable machine copy propagation for now. It's known to be buggy (PR11940) and introduces subtle miscompiles in many places.
...
llvm-svn: 150703
2012-02-16 17:29:50 +00:00