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
|