History log of /external/llvm/utils/TableGen/FastISelEmitter.cpp
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
dce4a407a24b04eebc6a376f8e62b41aaa7b071f 29-May-2014 Stephen Hines <srhines@google.com> Update LLVM for 3.5 rebase (r209712).

Change-Id: I149556c940fb7dc92d075273c87ff584f400941f
/external/llvm/utils/TableGen/FastISelEmitter.cpp
36b56886974eae4f9c5ebc96befd3e7bfe5de338 24-Apr-2014 Stephen Hines <srhines@google.com> Update to LLVM 3.5a.

Change-Id: Ifadecab779f128e62e430c2b4f6ddd84953ed617
/external/llvm/utils/TableGen/FastISelEmitter.cpp
ff372dc18d0d569cbcfb7346eb891d6a96219043 30-Aug-2013 Jim Grosbach <grosbach@apple.com> Tidy up. Comment grammar.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@189618 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/FastISelEmitter.cpp
dd46230062c1e83db927737fd2b63237c4285019 30-Aug-2013 Jim Grosbach <grosbach@apple.com> Tidy up. Trailing whitespace.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@189617 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/FastISelEmitter.cpp
d35da5055ba01057ee08b9feb987e02335c6f44f 22-May-2013 Bill Schmidt <wschmidt@linux.vnet.ibm.com> Recognize ValueType operands in source patterns for fast-isel.

Currently the fast-isel table generator recognizes registers, register
classes, and immediates for source pattern operands. ValueType
operands are not recognized. This is not a problem for existing
targets with fast-isel support, but will not work for targets like
PowerPC and SPARC that use types in source patterns.

The proposed patch allows ValueType operands and treats them in the
same manner as register classes. There is no convenient way to map
from a ValueType to a register class, but there's no need to do so.
The table generator already requires that all types in the source
pattern be identical, and we know the register class of the output
operand already. So we just assign that register class to any
ValueType operands we encounter.

No functional effect on existing targets. Testing deferred until the
PowerPC target implements fast-isel.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@182512 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/FastISelEmitter.cpp
61131ab15fd593a2e295d79fe2714e7bc21f2ec8 25-Oct-2012 Joerg Sonnenberger <joerg@bec.de> Remove exception handling usage from tblgen.

Most places can use PrintFatalError as the unwinding mechanism was not
used for anything other than printing the error. The single exception
was CodeGenDAGPatterns.cpp, where intermediate errors during type
resolution were ignored to simplify incremental platform development.
This use is replaced by an error flag in TreePattern and bailout earlier
in various places if it is set.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@166712 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/FastISelEmitter.cpp
3f7b7f8ce0b050fc6a0100839d9c5a84198b2aed 10-Oct-2012 Sean Silva <silvas@purdue.edu> tblgen: Use semantically correct RTTI functions.

Also, some minor cleanup.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@165647 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/FastISelEmitter.cpp
6cfc806a6b82b60a3e923b6b89f2b4da62cdb50b 10-Oct-2012 Sean Silva <silvas@purdue.edu> tblgen: Mechanically move dynamic_cast<> to dyn_cast<>.

Some of these dyn_cast<>'s would be better phrased as isa<> or cast<>.
That will happen in a future patch.

There are also two dyn_cast_or_null<>'s slipped in instead of
dyn_cast<>'s, since they were causing crashes with just dyn_cast<>.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@165646 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/FastISelEmitter.cpp
6f36fa981a59461466e12e5056ba209d289b81b1 11-Jun-2012 Jakob Stoklund Olesen <stoklund@2pi.dk> Write llvm-tblgen backends as functions instead of sub-classes.

The TableGenBackend base class doesn't do much, and will be removed
completely soon.

Patch by Sean Silva!

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@158311 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/FastISelEmitter.cpp
a7542d5f870c5d98960d1676e23ac1d1d975d7e5 06-Jun-2012 Benjamin Kramer <benny.kra@googlemail.com> Remove unused private fields found by clang's new -Wunused-private-field.

There are some that I didn't remove this round because they looked like
obvious stubs. There are dead variables in gtest too, they should be
fixed upstream.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@158090 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/FastISelEmitter.cpp
9b58f29ad0f5f3eb53d5303aec5ca81456c76209 19-Apr-2012 Craig Topper <craig.topper@gmail.com> Make fast isel use &XXXRegClass instead of XXXRegisterClass. Not a functional change since XXXRegisterClass is just a constant alias of &XXXRegClass, but should probably go away.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@155104 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/FastISelEmitter.cpp
f321e1075eabae96f62b1f2570d9dee5d10b8200 07-Jan-2012 Benjamin Kramer <benny.kra@googlemail.com> Remove VectorExtras. This unused helper was written for a type of API that is discouraged now.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@147738 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/FastISelEmitter.cpp
82f000266a93c6e18e7db23c6736a73dd31f46c1 07-Jan-2012 Cameron Zwarich <zwarich@apple.com> Fix TableGen so that it will emit the correct signature for FastEmit_f:

/// FastEmit_f - This method is called by target-independent code
/// to request that an instruction with the given type, opcode, and
/// floating-point immediate operand be emitted.
virtual unsigned FastEmit_f(MVT VT,
MVT RetVT,
unsigned Opcode,
const ConstantFP *FPImm);

Currently, it emits an accidentally overloaded version without the const on the
ConstantFP*. This doesn't affect anything in the tree, since nothing causes that
method to be autogenerated, but I have been playing with some ARM TableGen
refactorings that hit this problem.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@147727 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/FastISelEmitter.cpp
7c788888872233748da10a8177a9a1eb176c1bc8 01-Oct-2011 Peter Collingbourne <peter@pcc.me.uk> Move TableGen's parser and entry point into a library

This is the first step towards splitting LLVM and Clang's tblgen executables.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@140951 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/FastISelEmitter.cpp
691a4882ed086912edfe60da225bdc3f3e2f9a82 23-Aug-2011 Eric Christopher <echristo@apple.com> Fix fpimmm->fpimm typo.

Patch by Micah Villmow!


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@138330 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/FastISelEmitter.cpp
05bce0beee87512e52428d4b80f5a8e79a949576 30-Jul-2011 David Greene <greened@obbligato.org> Unconstify Inits

Remove const qualifiers from Init references, per Chris' request.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@136531 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/FastISelEmitter.cpp
f37dd02f7743ebd2424480361f5a7db510495c4f 29-Jul-2011 David Greene <greened@obbligato.org> [AVX] Constify Inits

Make references to Inits const everywhere. This is the final step
before making them unique.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@136485 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/FastISelEmitter.cpp
d568b3f55294917d1cc701da14a8a7daeb6563e6 12-Jul-2011 Eric Christopher <echristo@apple.com> Revert r134921, 134917, 134908 and 134907. They're causing failures
in multiple buildbots.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@134936 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/FastISelEmitter.cpp
d4a9066c93da9a5aab47ca228d82e796fdec70c0 11-Jul-2011 David Greene <greened@obbligato.org> [AVX] Make Inits Foldable

Manage Inits in a FoldingSet. This provides several benefits:

- Memory for Inits is properly managed

- Duplicate Inits are folded into Flyweights, saving memory

- It enforces const-correctness, protecting against certain classes
of bugs

The above benefits allow Inits to be used in more contexts, which in
turn provides more dynamism to TableGen. This enhanced capability
will be used by the AVX code generator to a fold common patterns
together.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@134907 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/FastISelEmitter.cpp
bea6f615eefae279e53bbb63a31d2c3c67274c45 27-Jun-2011 Owen Anderson <resistor@mac.com> Add support for alternative register names, useful for instructions whose operands are logically equivalent to existing registers, but happen to be printed specially. For example, an instruciton that prints d0[0] instead of s0.
Patch by Jim Grosbach.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133940 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/FastISelEmitter.cpp
0b6a44afb92fed0365b6709c1f46b0c5e49e1a72 22-Jun-2011 Jim Grosbach <grosbach@apple.com> Consolidate some TableGen diagnostic helper functions.

TableGen had diagnostic printers sprinkled about in a few places. Pull them
together into a single location in Error.cpp.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133568 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/FastISelEmitter.cpp
abdbc84b4ed4276ed3def50f554e3ba156325717 18-Jun-2011 Jakob Stoklund Olesen <stoklund@2pi.dk> Store CodeGenRegisters as pointers so they won't be reallocated.

Reuse the CodeGenRegBank DenseMap in a few places that would build their
own or use linear search.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133333 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/FastISelEmitter.cpp
7b9cafde5e3faec22bbfbbc90cca0876968abad9 15-Jun-2011 Jakob Stoklund Olesen <stoklund@2pi.dk> Move the list of register classes into CodeGenRegBank as well.

No functional change intended.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133029 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/FastISelEmitter.cpp
36a300ac0263f37d6ce0deefd696cb625a1432fd 07-Jun-2011 Chad Rosier <mcrosier@apple.com> Fixed a few illegal paths with llvm_unreachable. Patch by Cameron McInally.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132732 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/FastISelEmitter.cpp
206a10cf286572cd22140559b328e0a14cef7984 29-Apr-2011 Eli Friedman <eli.friedman@gmail.com> Filter out pattterns from the FastISel emitter which it doesn't actually know how to handle. No significant functionality change at the moment, but it's necessary for some changes I'm planning.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130547 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/FastISelEmitter.cpp
202a7a1e3fa661bf78b98d77de7e2d575facd9ee 18-Apr-2011 Chris Lattner <sabre@nondot.org> Add a new bit that ImmLeaf's can opt into, which allows them to duck out of
the generated FastISel. X86 doesn't need to generate code to match ADD16ri8
since ADD16ri will do just fine. This is a small codesize win in the generated
instruction selector.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@129692 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/FastISelEmitter.cpp
1518afddea6c0a4275a9ac64a9ffe2b6b4c0600a 18-Apr-2011 Chris Lattner <sabre@nondot.org> Implement major new fastisel functionality: the matcher can now handle immediates with
value constraints on them (when defined as ImmLeaf's). This is particularly important
for X86-64, where almost all reg/imm instructions take a i64immSExt32 immediate operand,
which has a value constraint. Before this patch we ended up iseling the examples into
such amazing code as:

movabsq $7, %rax
imulq %rax, %rdi
movq %rdi, %rax
ret

now we produce:

imulq $7, %rdi, %rax
ret

This dramatically shrinks the generated code at -O0 on x86-64.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@129691 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/FastISelEmitter.cpp
9bfd5f3b22157ac2d14ddcaea93b98a6f1140f2f 18-Apr-2011 Chris Lattner <sabre@nondot.org> introduce a new OpKind abstraction which wraps up operand flavors in a tidy little wrapper.
No functionality change.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@129680 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/FastISelEmitter.cpp
a90dbc133f7bc7bf0e042fb03222bfdfafce3965 18-Apr-2011 Chris Lattner <sabre@nondot.org> change OperandsSignature to use SmallVector<char> instead of std::vector<string>
since the strings are always exactly one character, and there are usually only 2-3 operands.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@129678 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/FastISelEmitter.cpp
461cd703115e40af487af4642cbacdc9b2187dde 17-Apr-2011 Chris Lattner <sabre@nondot.org> remove some debugging code I added.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@129668 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/FastISelEmitter.cpp
602fc0681726155942907debee1fe0b8b44ffc1b 17-Apr-2011 Chris Lattner <sabre@nondot.org> 1. merge fast-isel-shift-imm.ll into fast-isel-x86-64.ll
2. implement rdar://9289501 - fast isel should fold trivial multiplies to shifts
3. teach tblgen to handle shift immediates that are different sizes than the
shifted operands, eliminating some code from the X86 fast isel backend.
4. Have FastISel::SelectBinaryOp use (the poorly named) FastEmit_ri_ function
instead of FastEmit_ri to simplify code.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@129666 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/FastISelEmitter.cpp
997759ac22dc1de6f324b1c09c0a2a558236c489 08-Dec-2010 Jim Grosbach <grosbach@apple.com> Add source Record* reference to PatternToMatch. Allows better diagnostics.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@121196 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/FastISelEmitter.cpp
45258f570826bb4369042efa915a10248b4d7a42 07-Dec-2010 Jim Grosbach <grosbach@apple.com> Trailing whitespace.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@121167 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/FastISelEmitter.cpp
76612b549f176fd6db13c675003232d702c4b2ba 07-Dec-2010 Jim Grosbach <grosbach@apple.com> Change assert to diagnostic. Message still needs work, but it's better than
an assert, at least.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@121166 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/FastISelEmitter.cpp
c240bb0ede0541426254d0e0dc81d891beda4b22 01-Nov-2010 Chris Lattner <sabre@nondot.org> factor the operand list (and related fields/operations) out of
CodeGenInstruction into its own helper class. No functionality change.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117893 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/FastISelEmitter.cpp
53452606ca04929257b3bcbfa5e0d59a44925882 25-Aug-2010 Eric Christopher <echristo@apple.com> Allow strict subclasses of register classes, this way we can handle
ARM instructions with:

foo GPR, rGPR

which happens a lot.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112025 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/FastISelEmitter.cpp
2cfcad97b766068a20f3715ed3b4beb9143f329f 25-Aug-2010 Eric Christopher <echristo@apple.com> Fix comment.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111996 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/FastISelEmitter.cpp
922157c83440e0197e7fd962cf7030491a8069b1 17-Aug-2010 Eric Christopher <echristo@apple.com> Remove predicate workaround, we're going to require that predicate
and optional def operands are handled in the backend support.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111220 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/FastISelEmitter.cpp
bc16827be6d8c29bd9a541444c6fc3bf69ce9b00 28-Jul-2010 Eric Christopher <echristo@apple.com> Filter out patterns that have PredicateOperands.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109572 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/FastISelEmitter.cpp
ecfa079206912a1ae4069881cf63edf6be7fa117 26-Jul-2010 Eric Christopher <echristo@apple.com> 80-col.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109407 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/FastISelEmitter.cpp
07fdd897e2c4304b6f70345c488e97fd97374576 22-Jul-2010 Eric Christopher <echristo@apple.com> Hack around extracts that aren't easy to process.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109043 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/FastISelEmitter.cpp
4f8e771ae89bcf934f931d64ef3ad9a188ce4921 11-Jul-2010 Jakob Stoklund Olesen <stoklund@2pi.dk> Replace copyRegToReg with COPY in FastISelEmitter.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108071 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/FastISelEmitter.cpp
84023e0fbefc406a4c611d3d64a10df5d3a97dd7 10-Jul-2010 Dan Gohman <gohman@apple.com> Reapply bottom-up fast-isel, with several fixes for x86-32:
- Check getBytesToPopOnReturn().
- Eschew ST0 and ST1 for return values.
- Fix the PIC base register initialization so that it doesn't ever
fail to end up the top of the entry block.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108039 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/FastISelEmitter.cpp
02266e29f9250d74c5ec720aff23add3410ae920 09-Jul-2010 Bob Wilson <bob.wilson@apple.com> --- Reverse-merging r107947 into '.':
U utils/TableGen/FastISelEmitter.cpp
--- Reverse-merging r107943 into '.':
U test/CodeGen/X86/fast-isel.ll
U test/CodeGen/X86/fast-isel-loads.ll
U include/llvm/Target/TargetLowering.h
U include/llvm/Support/PassNameParser.h
U include/llvm/CodeGen/FunctionLoweringInfo.h
U include/llvm/CodeGen/CallingConvLower.h
U include/llvm/CodeGen/FastISel.h
U include/llvm/CodeGen/SelectionDAGISel.h
U lib/CodeGen/LLVMTargetMachine.cpp
U lib/CodeGen/CallingConvLower.cpp
U lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp
U lib/CodeGen/SelectionDAG/FunctionLoweringInfo.cpp
U lib/CodeGen/SelectionDAG/FastISel.cpp
U lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
U lib/CodeGen/SelectionDAG/ScheduleDAGSDNodes.cpp
U lib/CodeGen/SelectionDAG/InstrEmitter.cpp
U lib/CodeGen/SelectionDAG/TargetLowering.cpp
U lib/Target/XCore/XCoreISelLowering.cpp
U lib/Target/XCore/XCoreISelLowering.h
U lib/Target/X86/X86ISelLowering.cpp
U lib/Target/X86/X86FastISel.cpp
U lib/Target/X86/X86ISelLowering.h


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107987 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/FastISelEmitter.cpp
a5d4391d6d00ac7c81bb2a9a770e954dceb86de3 09-Jul-2010 Dan Gohman <gohman@apple.com> These changes should have accompanied r107943.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107947 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/FastISelEmitter.cpp
f59514152511694d46ca8b8d2db466d256ab5759 08-Jul-2010 Dan Gohman <gohman@apple.com> Revert 107840 107839 107813 107804 107800 107797 107791.
Debug info intrinsics win for now.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107850 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/FastISelEmitter.cpp
eabaed26c3921453d824b71a93557c32132f4fdd 07-Jul-2010 Dan Gohman <gohman@apple.com> Give FunctionLoweringInfo an MBB member, avoiding the need to pass it
around everywhere, and also give it an InsertPt member, to enable isel
to operate at an arbitrary position within a block, rather than just
appending to a block.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107791 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/FastISelEmitter.cpp
098d3a41e11e12f6fe64cf9778d71942a9635e05 27-May-2010 Dan Gohman <gohman@apple.com> Minor code simplification.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104845 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/FastISelEmitter.cpp
73ea7bf4509663267317ec3911aac00ca35a2f2c 24-May-2010 Jakob Stoklund Olesen <stoklund@2pi.dk> Add the SubRegIndex TableGen class.

This is the beginning of purely symbolic subregister indices, but we need a bit
of jiggling before the explicit numeric indices can be completely removed.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104492 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/FastISelEmitter.cpp
a6cb641f48df20f6f79018569b519e5a32e897a2 12-May-2010 Dan Gohman <gohman@apple.com> Add initial kill flag support to FastISel.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103529 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/FastISelEmitter.cpp
34dcc6fadca0a1117cdbd0e9b35c991a55b6e556 06-May-2010 Dan Gohman <gohman@apple.com> Add a DebugLoc argument to TargetInstrInfo::copyRegToReg, so that it
doesn't have to guess.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103194 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/FastISelEmitter.cpp
084df627c82fdf4e1829723edf0a833b5bc31f89 24-Mar-2010 Chris Lattner <sabre@nondot.org> add plumbing for handling multiple result nodes
in some more places.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99366 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/FastISelEmitter.cpp
d7349194650386d97a1d779369cb46f20ba9f252 19-Mar-2010 Chris Lattner <sabre@nondot.org> major surgery on tblgen: generalize TreePatternNode
to maintain a list of types (one for each result of
the node) instead of a single type. There are liberal
hacks added to emulate the old behavior in various
situations, but they can start disolving now.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98999 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/FastISelEmitter.cpp
f30187a36324fb75042d9ffd20c3fb70aff7763d 19-Mar-2010 Chris Lattner <sabre@nondot.org> look up instructions by record, not by name.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98904 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/FastISelEmitter.cpp
2cacec55f947c716b058a39038889550d7e39b3c 15-Mar-2010 Chris Lattner <sabre@nondot.org> Completely rewrite tblgen's type inference mechanism,
changing the primary datastructure from being a
"std::vector<unsigned char>" to being a new TypeSet class
that actually has (gasp) invariants!

This changes more things than I remember, but one major
innovation here is that it enforces that named input
values agree in type with their output values.

This also eliminates code that transparently assumes (in
some cases) that SDNodeXForm input/output types are the
same, because this is wrong in many case.

This also eliminates a bug which caused a lot of ambiguous
patterns to go undetected, where a register class would
sometimes pick the first possible type, causing an
ambiguous pattern to get arbitrary results.

With all the recent target changes, this causes no
functionality change!


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98534 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/FastISelEmitter.cpp
7c3ecb6838ef7a2ca306c0f3cd68022f0855ae71 05-Jan-2010 Dan Gohman <gohman@apple.com> Don't use the ISD::NodeType enum for SDNode opcodes, as CodeGen
uses several kinds of opcode values which are not declared within
that enum. This fixes PR5946.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92794 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/FastISelEmitter.cpp
b7c5bdf843419e4222770475c27932c4c8e5c303 06-Sep-2009 Duncan Sands <baldrick@free.fr> Remove some unused variables and methods warned about by
icc (#177, partial). Patch by Erick Tryzelaar.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81106 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/FastISelEmitter.cpp
825b72b0571821bf2d378749f69d6c4cfb52d2f9 11-Aug-2009 Owen Anderson <resistor@mac.com> Split EVT into MVT and EVT, the former representing _just_ a primitive type, while
the latter is capable of representing either a primitive or an extended type.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78713 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/FastISelEmitter.cpp
e50ed30282bb5b4a9ed952580523f2dda16215ac 11-Aug-2009 Owen Anderson <resistor@mac.com> Rename MVT to EVT, in preparation for splitting SimpleValueType out into its own struct type.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78610 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/FastISelEmitter.cpp
1a55180238dbcf11113f610aea010447e51f595b 03-Jul-2009 Daniel Dunbar <daniel@zuster.org> Replace std::iostreams with raw_ostream in TableGen.
- Sorry, I can't help myself.

- No intended functionality change.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74742 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/FastISelEmitter.cpp
edc8774a7375dc74f226ee37d0ba321502ddf691 22-May-2009 Dale Johannesen <dalej@apple.com> TableGen for fast isel seems to assume an 'imm'
operand is the last in a pattern. There is no
reason this should be true (although apparently
it always is right now).



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72232 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/FastISelEmitter.cpp
536ab130ec95cbb7bf30530251dafa7dfecc8471 22-Jan-2009 Evan Cheng <evan.cheng@apple.com> Eliminate a couple of fields from TargetRegisterClass: SubRegClasses and SuperRegClasses. These are not necessary. Also eliminate getSubRegisterRegClass and getSuperRegisterRegClass. These are slow and their results can change if register file names change. Just use TargetLowering::getRegClassFor() to get the right TargetRegisterClass instead.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62762 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/FastISelEmitter.cpp
0540e17788f0d09d784fb9bd9b354e02f1c5e4a4 15-Oct-2008 Dan Gohman <gohman@apple.com> Add support for having multiple predicates on a TreePatternNode.
This will allow predicates to be composed, which will allow the
predicate definitions to become less redundant, and eventually
will allow DAGISelEmitter.cpp to emit less redundant code.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57562 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/FastISelEmitter.cpp
5ec9efd61bc4214c787287409498e8b78f28c922 30-Sep-2008 Dan Gohman <gohman@apple.com> Move the primary fast-isel top-level comments to FastISel.cpp, where
they'll be a little more visible. Also, update and reword them a bit.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56877 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/FastISelEmitter.cpp
98d2d07d416b3431a298eec5a2bfe8b39652c3aa 08-Sep-2008 Evan Cheng <evan.cheng@apple.com> Correctly handle physical register inputs. They are not explicit input operands in the resulting machine instrs.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55893 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/FastISelEmitter.cpp
d07b46e9080c0c2b965e5a618c13fa2a25131c86 07-Sep-2008 Evan Cheng <evan.cheng@apple.com> Fix indentation of generated code.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55876 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/FastISelEmitter.cpp
34fc6ceb73ed9e6acaa40c86b0b68684b95cca23 07-Sep-2008 Evan Cheng <evan.cheng@apple.com> Ignore multi-instruction patterns. e.g.
def : Pat<(i8 (trunc GR32:$src)),
(i8 (EXTRACT_SUBREG (MOV32to32_ GR32:$src), x86_subreg_8bit))>


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55875 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/FastISelEmitter.cpp
c3f44b0d636ff9a6d706ea9ac17ae77c8fa8aeff 03-Sep-2008 Evan Cheng <evan.cheng@apple.com> Let tblgen only generate fastisel routines, not the class definition. This makes it easier for targets to define its own fastisel class.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55679 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/FastISelEmitter.cpp
667d8f7607f021c66c854ff3ea35a9df107eabfe 29-Aug-2008 Owen Anderson <resistor@mac.com> Add initial support for fast isel of instructions that have inputs pinned to physical registers.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55545 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/FastISelEmitter.cpp
99b218218c0ca3ebfdd568ddfeafa07842e9d69d 29-Aug-2008 Dan Gohman <gohman@apple.com> Add a target callback for FastISel.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55512 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/FastISelEmitter.cpp
b5dbcb538b2ecfde2c94a1981301ac9beea3ea3c 28-Aug-2008 Owen Anderson <resistor@mac.com> Add support for fast-isel of opcodes that require use of extract_subreg. Because of how extract_subreg is treated, it requires special case handling.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55480 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/FastISelEmitter.cpp
833ddf84302aa08d9157b28d37c40ae134a74da6 27-Aug-2008 Dan Gohman <gohman@apple.com> Update a comment to reflect recent changes.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55418 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/FastISelEmitter.cpp
10df0fa73e396bbc93a8940e8b53827390c54d10 27-Aug-2008 Dan Gohman <gohman@apple.com> Basic FastISel support for floating-point constants.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55401 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/FastISelEmitter.cpp
72d63af3f76250f198910f0f69cb4ccffd4c14a6 26-Aug-2008 Dan Gohman <gohman@apple.com> Refactor a bunch of FastISelEmitter code into a helper class, and
put each major step in a separate function. This makes the high
level sequence of events easier to follow.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55385 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/FastISelEmitter.cpp
70647e81e320245f02f003f6403d0222f5951c52 26-Aug-2008 Owen Anderson <resistor@mac.com> We need to check that the return type is correct, even in cases where we don't
have a return type that differs from the operand types.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55376 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/FastISelEmitter.cpp
abb1f1688172cf6f3c5bc539841da76053f23533 26-Aug-2008 Owen Anderson <resistor@mac.com> Throw the switch to allow FastISel to emit instructions whose return types different from their inputs. Next step: adding lowering pattens in FastISel that actually use these newly available opcodes.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55349 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/FastISelEmitter.cpp
71669e51e5bd2b34365b2b1401310a0bbdb86de4 26-Aug-2008 Owen Anderson <resistor@mac.com> Enhance TableGen to emit code for FastISel of opcodes with variadic return types without slowing down opcodes that are not variadic. No such opcodes are currently generated, but in theory it should be a matter of just hitting the switch.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55347 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/FastISelEmitter.cpp
0f84e4e31009eecf2dfcbe6113b65d0919f30254 26-Aug-2008 Owen Anderson <resistor@mac.com> Add a RetVT parameter to emitted FastISel methods, so that we will be able to pass the desired return
type down. This is not currently used.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55345 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/FastISelEmitter.cpp
7b2e579546d1ebf49c2e187efab2c76be9e32050 26-Aug-2008 Owen Anderson <resistor@mac.com> Deepen the map structure tablegen uses to compute FastISel patterns, in preparation for having patterns
with return types that differ from their input types. This is not yet used.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55344 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/FastISelEmitter.cpp
6d0c25ec3a7ca822e68f73a4481eee43eb5c9485 25-Aug-2008 Owen Anderson <resistor@mac.com> Add support for fast isel of (integer) immediate materialization pattens, and use them to support
bitcast of constants in fast isel.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55325 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/FastISelEmitter.cpp
0bfb75277f6d6e160dd29d99e6870da927500b50 22-Aug-2008 Dan Gohman <gohman@apple.com> Add a few comments.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55157 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/FastISelEmitter.cpp
22bb31103de3337f0bb74c7bee16d1817d4dca14 22-Aug-2008 Dan Gohman <gohman@apple.com> Factor out the predicate check code from DAGISelEmitter.cpp
and use it in FastISelEmitter.cpp, and make FastISel
subtarget aware. Among other things, this lets it work
properly on x86 targets that don't have SSE, where it
successfully selects x87 instructions.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55156 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/FastISelEmitter.cpp
d5fe57d2f980c6bd1a61450f99c254a76d0f1683 21-Aug-2008 Dan Gohman <gohman@apple.com> Basic fast-isel support for instructions with constant int operands.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55099 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/FastISelEmitter.cpp
520b50c00d237ef4309fca364202d111f9faa82f 21-Aug-2008 Dan Gohman <gohman@apple.com> Remove the code that limited FastISel to certain fixed signatures.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55096 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/FastISelEmitter.cpp
c7f72de3b4ef21828ea4780f0693bf0acd04e1c5 21-Aug-2008 Dan Gohman <gohman@apple.com> Begin making more use of the FastISelEmitter class.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55093 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/FastISelEmitter.cpp
83babdea5d4ed19c7ed0be225e8be98463914ffb 20-Aug-2008 Dan Gohman <gohman@apple.com> Remove an obsolete todo comment.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55080 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/FastISelEmitter.cpp
1e0ee4bc38e9cdc7e7ac49968527e2c05f927904 20-Aug-2008 Dan Gohman <gohman@apple.com> Factor the code for determining the target-specific instruction
namespace out of the isel emitters and into common code.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55079 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/FastISelEmitter.cpp
bb466331e7e50d03497ce40ee344870236fd9c32 20-Aug-2008 Dan Gohman <gohman@apple.com> Simplify FastISel's constructor argument list, make the FastISel
class hold a MachineRegisterInfo member, and make the
MachineBasicBlock be passed in to SelectInstructions rather
than the FastISel constructor.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55076 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/FastISelEmitter.cpp
cf711aa5b66ed684ebc65e08369abab911d6f799 19-Aug-2008 Dan Gohman <gohman@apple.com> For now, restrict FastISel to instructions that only involve one
register class.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55008 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/FastISelEmitter.cpp
d1d2ee8ccbcf0d8c54a07413d4ae599ebfdda14b 19-Aug-2008 Dan Gohman <gohman@apple.com> Factor out the code to scan an instruction's operands into a
helper function.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55007 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/FastISelEmitter.cpp
379cad44ecc91be24b2b147081d2089024cbaceb 19-Aug-2008 Dan Gohman <gohman@apple.com> Add more comments.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55004 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/FastISelEmitter.cpp
56e0f87dcc8dcb004c8f2c421c4806377439fc21 19-Aug-2008 Dan Gohman <gohman@apple.com> Fix indentation in FastISel tablegen-emitted code.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55003 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/FastISelEmitter.cpp
f4137b5f409525b41ec4d4bff56c54fd2a9db274 19-Aug-2008 Dan Gohman <gohman@apple.com> Add more checking to filter out more kinds of things that
FastISel doesn't support yet.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55002 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/FastISelEmitter.cpp
567263462f8ad255ebddaff9138e3b76bec6340c 19-Aug-2008 Dan Gohman <gohman@apple.com> 80 columns.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54998 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/FastISelEmitter.cpp
04b7dfb233de210cd1c7d846f9fbde85f6824d5e 19-Aug-2008 Dan Gohman <gohman@apple.com> Add a few doxygen comments.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54997 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/FastISelEmitter.cpp
b0cf29c5cfff797284b3660dc233e135feb65d9a 13-Aug-2008 Dan Gohman <gohman@apple.com> Initial checkin of the new "fast" instruction selection support. See
the comments in FastISelEmitter.cpp for details on what this is.
This is currently experimental and unusable.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54751 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/FastISelEmitter.cpp