| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
|
|
| |
when determining validity of matching constraint. Allow i1
types access to the GR8 reg class for x86.
Fixes PR10352 and rdar://9777108
llvm-svn: 135180
|
| |
|
|
| |
llvm-svn: 135171
|
| |
|
|
|
|
|
| |
ldm/stm are the cannonical spellings for ldmia/stmia, so use them as such.
Update the parsing/encoding tests accordingly.
llvm-svn: 135168
|
| |
|
|
| |
llvm-svn: 135158
|
| |
|
|
|
|
|
| |
The ISB instruction takes an optional operand, just like DMB/DSB. Typically
only 'sy' is meaningful.
llvm-svn: 135156
|
| |
|
|
|
|
| |
Part of rdar://9761830
llvm-svn: 135133
|
| |
|
|
|
|
| |
simple SETNE is sufficient.
llvm-svn: 135126
|
| |
|
|
| |
llvm-svn: 135119
|
| |
|
|
| |
llvm-svn: 135117
|
| |
|
|
|
|
| |
Add instalias for default 'sy' option. Add tests.
llvm-svn: 135116
|
| |
|
|
|
|
|
|
| |
Flesh out the options supported for the instruction. Shuffle tests a bit and
add entries for the rest of the options. Add an alias to handle the default
operand of "sy".
llvm-svn: 135109
|
| |
|
|
|
|
| |
Add range checking and testing for parsing and encoding of DBG instruction.
llvm-svn: 135102
|
| |
|
|
| |
llvm-svn: 135099
|
| |
|
|
| |
llvm-svn: 135098
|
| |
|
|
| |
llvm-svn: 135095
|
| |
|
|
| |
llvm-svn: 135092
|
| |
|
|
|
|
|
| |
general version of X86ISD::ANDNP also opened the room for a little bit
of refactoring.
llvm-svn: 135088
|
| |
|
|
|
|
|
|
| |
same addressing mode on x86-64. It can overflow, leading to a crash/miscompile.
<rdar://problem/9763308>
llvm-svn: 135084
|
| |
|
|
|
|
|
| |
They're all Thumb2 only, not just some of them. More refactoring cleanup
coming.
llvm-svn: 135081
|
| |
|
|
| |
llvm-svn: 135078
|
| |
|
|
| |
llvm-svn: 135072
|
| |
|
|
| |
llvm-svn: 135071
|
| |
|
|
| |
llvm-svn: 135064
|
| |
|
|
| |
llvm-svn: 135063
|
| |
|
|
| |
llvm-svn: 135062
|
| |
|
|
| |
llvm-svn: 135061
|
| |
|
|
|
|
|
| |
Keeping the instructions in alphabetical order, just like in the ARM ARM.
Adding FIXMEs for skipped instructions when adding tests out of order.
llvm-svn: 135060
|
| |
|
|
|
|
| |
another use of sqrt. rdar://9763193
llvm-svn: 135058
|
| |
|
|
| |
llvm-svn: 135056
|
| |
|
|
|
|
|
|
|
| |
Catch potential cascading errors on a malformed so_reg operand and bail after
the first error.
Add some tests for the diagnostics we do want.
llvm-svn: 135055
|
| |
|
|
| |
llvm-svn: 135053
|
| |
|
|
| |
llvm-svn: 135052
|
| |
|
|
|
|
|
| |
Now works for parsing register shifted register and register shifted
immediate arithmetic instructions, including the 'rrx' rotate with extend.
llvm-svn: 135049
|
| |
|
|
|
|
| |
vxorps, vxorpd
llvm-svn: 135023
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
if (x != 0) x = 1
if (x == 1) x = 1
Previous codegen looks like this:
mov r1, r0
cmp r1, #1
mov r0, #0
moveq r0, #1
The naive lowering select between two different values. It should recognize the
test is equality test so it's more a conditional move rather than a select:
cmp r0, #1
movne r0, #0
rdar://9758317
llvm-svn: 135017
|
| |
|
|
| |
llvm-svn: 134987
|
| |
|
|
|
|
|
| |
Use memory barriers to force if-conversion off for these tests instead of
the internal llc command line option ifcvt-limit.
llvm-svn: 134986
|
| |
|
|
| |
llvm-svn: 134958
|
| |
|
|
|
|
| |
The 'CS' is not a predication suffix in this case.
llvm-svn: 134903
|
| |
|
|
|
|
|
|
|
| |
Print shifted immediate values directly rather than as a payload+shifter
value pair. This makes for more readable output assembly code, simplifies
the instruction printer, and is consistent with how Thumb immediates are
displayed.
llvm-svn: 134902
|
| |
|
|
|
|
| |
also r134814 (test/CodeGen/X86/vector.ll).
llvm-svn: 134900
|
| |
|
|
| |
llvm-svn: 134889
|
| |
|
|
|
|
|
|
|
|
|
|
| |
and MCSubtargetInfo.
- Added methods to update subtarget features (used when targets automatically
detect subtarget features or switch modes).
- Teach X86Subtarget to update MCSubtargetInfo features bits since the
MCSubtargetInfo layer can be shared with other modules.
- These fixes .code 16 / .code 32 support since mode switch is updated in
MCSubtargetInfo so MC code emitter can do the right thing.
llvm-svn: 134884
|
| |
|
|
|
|
|
|
| |
more than one use.
Fixes PR10322.
llvm-svn: 134883
|
| |
|
|
|
|
|
| |
PR10292 doesn't show that the loads don't alias
the allocas.
llvm-svn: 134852
|
| |
|
|
| |
llvm-svn: 134850
|
| |
|
|
| |
llvm-svn: 134842
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
patch brings numerous advantages to LLVM. One way to look at it
is through diffstat:
109 files changed, 3005 insertions(+), 5906 deletions(-)
Removing almost 3K lines of code is a good thing. Other advantages
include:
1. Value::getType() is a simple load that can be CSE'd, not a mutating
union-find operation.
2. Types a uniqued and never move once created, defining away PATypeHolder.
3. Structs can be "named" now, and their name is part of the identity that
uniques them. This means that the compiler doesn't merge them structurally
which makes the IR much less confusing.
4. Now that there is no way to get a cycle in a type graph without a named
struct type, "upreferences" go away.
5. Type refinement is completely gone, which should make LTO much MUCH faster
in some common cases with C++ code.
6. Types are now generally immutable, so we can use "Type *" instead
"const Type *" everywhere.
Downsides of this patch are that it removes some functions from the C API,
so people using those will have to upgrade to (not yet added) new API.
"LLVM 3.0" is the right time to do this.
There are still some cleanups pending after this, this patch is large enough
as-is.
llvm-svn: 134829
|
| |
|
|
| |
llvm-svn: 134820
|
| |
|
|
| |
llvm-svn: 134819
|