| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
This uses less memory and it reduces the complexity of sub-class
operations:
- hasSubClassEq() and friends become O(1) instead of O(N).
- getCommonSubClass() becomes O(N) instead of O(N^2).
In the future, TableGen will infer register classes. This makes it
cheap to add them.
llvm-svn: 140898
|
| |
|
|
| |
llvm-svn: 140892
|
| |
|
|
| |
llvm-svn: 140868
|
| |
|
|
|
|
|
| |
This matches clang, so default options in llc and friends are now closer to
clang's defaults.
llvm-svn: 140863
|
| |
|
|
|
|
|
|
|
| |
Remove an assert that was expecting only the relevant 16bit portion for
the fixup being handled. Also kill some dead code in the T2 portion.
rdar://9653509
llvm-svn: 140861
|
| |
|
|
|
|
|
|
|
|
|
| |
Encode the immediate into its 8-bit form as part of isel rather than later,
which simplifies things for mapping the encoding bits, allows the removal
of the custom disassembler decoding hook, makes the operand printer trivial,
and prepares things more cleanly for handling these in the asm parser.
rdar://10211428
llvm-svn: 140834
|
| |
|
|
|
|
| |
for an MBB.
llvm-svn: 140824
|
| |
|
|
|
|
|
| |
This is used when we want to take the address of a machine basic block, but it's
not associated with a BB in LLVM IR.
llvm-svn: 140823
|
| |
|
|
| |
llvm-svn: 140774
|
| |
|
|
| |
llvm-svn: 140773
|
| |
|
|
|
|
|
| |
This enables NEON domain tracking across basic blocks, but should
otherwise do the same thing.
llvm-svn: 140772
|
| |
|
|
| |
llvm-svn: 140754
|
| |
|
|
|
|
|
|
| |
ends up introducing a cycle in the DAG.
rdar://10196296
llvm-svn: 140733
|
| |
|
|
| |
llvm-svn: 140719
|
| |
|
|
| |
llvm-svn: 140718
|
| |
|
|
|
|
|
|
|
|
|
|
| |
forgotten to commit.
Build on previous patches to successfully distinguish between an M-series and A/R-series MSR and MRS instruction. These take different mask names and have a *slightly* different opcode format.
Add decoder and disassembler tests.
Improvement on the previous patch - successfully distinguish between valid v6m and v7m masks (one is a subset of the other). The patch had to be edited slightly to apply to ToT.
llvm-svn: 140696
|
| |
|
|
| |
llvm-svn: 140655
|
| |
|
|
| |
llvm-svn: 140653
|
| |
|
|
|
|
|
|
| |
Add inst alias to handle these assembly forms. Add tests, too.
rdar://10178799
llvm-svn: 140647
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
current IR-level pass.
The old SjLj EH pass has some problems, especially with the new EH model. Most
significantly, it violates some of the new restrictions the new model has. For
instance, the 'dispatch' table wants to jump to the landing pad, but we cannot
allow that because only an invoke's unwind edge can jump to a landing pad. This
requires us to mangle the code something awful. In addition, we need to keep the
now dead landingpad instructions around instead of CSE'ing them because the
DWARF emitter uses that information (they are dead because no control flow edge
will execute them - the control flow edge from an invoke's unwind is superceded
by the edge coming from the dispatch).
Basically, this pass belongs not at the IR level where SSA is king, but at the
code-gen level, where we have more flexibility.
llvm-svn: 140646
|
| |
|
|
|
|
| |
Naming conventions consistency. No functional change.
llvm-svn: 140636
|
| |
|
|
| |
llvm-svn: 140615
|
| |
|
|
| |
llvm-svn: 140581
|
| |
|
|
| |
llvm-svn: 140560
|
| |
|
|
|
|
| |
2011-06-09-TailCallByVal and 2010-11-04-BigByval
llvm-svn: 140516
|
| |
|
|
|
|
| |
of #-0.
llvm-svn: 140426
|
| |
|
|
|
|
|
|
| |
Math is hard, and isScaledConstantInRange() always returned false for
negative constants. It was doing unsigned division of negative numbers
before casting back to signed.
llvm-svn: 140425
|
| |
|
|
| |
llvm-svn: 140422
|
| |
|
|
|
|
| |
even if it's zero, to distinguish them from non-post-indexed instructions.
llvm-svn: 140420
|
| |
|
|
|
|
| |
testcases updated.
llvm-svn: 140415
|
| |
|
|
| |
llvm-svn: 140413
|
| |
|
|
| |
llvm-svn: 140412
|
| |
|
|
|
|
| |
other test failures I caused.
llvm-svn: 140284
|
| |
|
|
|
|
| |
as [pc, #123] rather than simply #123.
llvm-svn: 140283
|
| |
|
|
|
|
| |
they have a fallback path now.
llvm-svn: 140267
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
This is still a hack until we can teach tblgen to generate the
optional CPSR operand rather than an implicit CPSR def. But the
strangeness is now limited to the selection DAG. ADD/SUB MI's no
longer have implicit CPSR defs, nor do we allow flag setting variants
of these opcodes in machine code. There are several corner cases to
consider, and getting one wrong would previously lead to nasty
miscompilation. It's not the first time I've debugged one, so this
time I added enough verification to ensure it won't happen again.
llvm-svn: 140228
|
| |
|
|
| |
llvm-svn: 140227
|
| |
|
|
|
|
| |
that the disassembler outputs annotations on with the streamer that the InstPrinter will print them on.
llvm-svn: 140217
|
| |
|
|
|
|
| |
does not support Thumb2 dsp instructions. rdar://10152911.
llvm-svn: 140181
|
| |
|
|
|
|
|
|
|
|
| |
No functionality change. The hook makes it explicit which patterns
require "special" handling. i.e. it self-documents tblgen
deficiencies. I plan to add verification in ExpandISelPseudos and
Thumb2SizeReduce to catch any missing hasPostISelHooks. Otherwise it's
too fragile.
llvm-svn: 140160
|
| |
|
|
|
|
|
|
|
|
|
| |
Modified ARMISelLowering::AdjustInstrPostInstrSelection to handle the
full gamut of CPSR defs/uses including instructins whose "optional"
cc_out operand is not really optional. This allowed removal of the
hasPostISelHook to simplify the .td files and make the implementation
more robust.
Fixes rdar://10137436: sqlite3 miscompile
llvm-svn: 140134
|
| |
|
|
| |
llvm-svn: 140133
|
| |
|
|
| |
llvm-svn: 140125
|
| |
|
|
| |
llvm-svn: 140119
|
| |
|
|
| |
llvm-svn: 140116
|
| |
|
|
| |
llvm-svn: 140111
|
| |
|
|
| |
llvm-svn: 140108
|
| |
|
|
| |
llvm-svn: 140106
|
| |
|
|
| |
llvm-svn: 140105
|
| |
|
|
| |
llvm-svn: 140104
|