6d3d7656539188b496089a3313ed4d13759adba3 |
|
06-Sep-2012 |
Tom Stellard <thomas.stellard@amd.com> |
Tablegen: Add OperandWithDefaultOps Operand type This Operand type takes a default argument, and is initialized to this value if it does not appear in a patter. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@163315 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/CodeGenDAGPatterns.h
|
325907d0860f8316edcc3bb00bf7b8b04497c177 |
|
28-Aug-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Check all patterns for missing instruction flags. Both single-instruction and multi-instruction patterns can be checked for missing mayLoad / mayStore, and hasSideEffects flags. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@162734 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/CodeGenDAGPatterns.h
|
655b8de7b2ab773a977e0c524307e71354d8af29 |
|
05-Feb-2012 |
Craig Topper <craig.topper@gmail.com> |
Convert assert(0) to llvm_unreachable git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@149814 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/CodeGenDAGPatterns.h
|
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/CodeGenDAGPatterns.h
|
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/CodeGenDAGPatterns.h
|
afd54269ab9951c0dcdea076c4d6f48a345e9d27 |
|
14-Jul-2011 |
David Greene <greened@obbligato.org> |
struct Init -> class Init Rename struct Init to class Init for consistency and in preparation for making Init a FoldingSetNode. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135097 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/CodeGenDAGPatterns.h
|
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/CodeGenDAGPatterns.h
|
9bcc399f1cdf396fb73ba23f7a400a97fbfd5ae1 |
|
11-Jul-2011 |
Evan Cheng <evan.cheng@apple.com> |
struct Init -> class Init. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@134917 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/CodeGenDAGPatterns.h
|
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/CodeGenDAGPatterns.h
|
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/CodeGenDAGPatterns.h
|
7ed1391ff66012e4963081cfb20b6166e8784f50 |
|
18-Apr-2011 |
Chris Lattner <sabre@nondot.org> |
now that predicates have a decent abstraction layer on them, introduce a new kind of predicate: one that is specific to imm nodes. The predicate function specified here just checks an int64_t directly instead of messing around with SDNode's. The virtue of this is that it means that fastisel and other things can reason about these predicates. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@129675 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/CodeGenDAGPatterns.h
|
543790673c747ab2793fc657e239ce5f78419dc0 |
|
17-Apr-2011 |
Chris Lattner <sabre@nondot.org> |
Rework our internal representation of node predicates to expose more structure and fix some fixmes. We now have a TreePredicateFn class that handles all of the decoding of these things. This is an internal cleanup that has no impact on the code generated by tblgen. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@129670 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/CodeGenDAGPatterns.h
|
6032269837c08a94b70b0e36f8e473c293ff5fd4 |
|
24-Jan-2011 |
David Greene <greened@obbligato.org> |
[AVX] Add type checking support for vector/subvector type constraints. This will be used to check patterns referencing a forthcoming INSERT_SUBVECTOR SDNode. INSERT_SUBVECTOR in turn is very useful for matching to VINSERTF128 instructions and complements the already existing EXTRACT_SUBVECTOR SDNode. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@124145 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/CodeGenDAGPatterns.h
|
398abb4a9aef6da6118c31b6563ec68d1766b913 |
|
24-Dec-2010 |
Jim Grosbach <grosbach@apple.com> |
Trailing whitespace. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@122542 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/CodeGenDAGPatterns.h
|
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/CodeGenDAGPatterns.h
|
acfb70f75061975deda1deb167da8e83249f92ed |
|
20-Apr-2010 |
Chris Lattner <sabre@nondot.org> |
stop computing InstImpInputs, it is dead git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101881 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/CodeGenDAGPatterns.h
|
62bcec82b2762d5cdc84fe39c7d634c784ed6673 |
|
20-Apr-2010 |
Chris Lattner <sabre@nondot.org> |
DAGInstruction::ImpOperands is dead after my recent tblgen work, zap it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101880 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/CodeGenDAGPatterns.h
|
48e86dbe29e331357b0df11075b7974009c65f34 |
|
29-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
print the complexity of the pattern being matched in the comment in the generated table. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99794 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/CodeGenDAGPatterns.h
|
2a22cdc716ea652d6c9ebdaae028b5c75ab2793a |
|
28-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
improve type checking of SDNode operand count. This rejects all cases where an incorrect number of operands is provided to an sdnode instead of just a few cases. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99761 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/CodeGenDAGPatterns.h
|
c217305f764447eb65e7bf7f9205c14632885969 |
|
28-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
eliminate a bunch of code duplication in ParseTreePattern by rotating it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99746 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/CodeGenDAGPatterns.h
|
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/CodeGenDAGPatterns.h
|
66fb9d26c64b75ad6619608905c4005f0777bf5d |
|
24-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
bring sanity to EnforceVectorEltType git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99354 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/CodeGenDAGPatterns.h
|
2e68a02c264c26abc6ed62d59f18813fa7fdb95d |
|
19-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
make getOperandNum a static function (since it's just used by ApplyTypeConstraint) and make it handle multiple result nodes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99003 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/CodeGenDAGPatterns.h
|
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/CodeGenDAGPatterns.h
|
774ce29399364823dba62217ebf7bc8701005140 |
|
19-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
make FillWithPossibleTypes take a predicate to filter types so that we don't blow the smallvector as often. No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98968 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/CodeGenDAGPatterns.h
|
5a9b8fb95c9a4c6fd5e06c1e89fa9263d39cd252 |
|
19-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
rewrite EnforceSmallerThan to be less bone headed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98933 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/CodeGenDAGPatterns.h
|
aac5b5b2e5eaf2e5bd62f9b96270e31d46125f4f |
|
19-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
eliminate the last use of EEVT::isUnknown git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98918 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/CodeGenDAGPatterns.h
|
e14d2e210dc7fe28009f44818a057622a73322e4 |
|
19-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
Finally change the instruction looking map to be a densemap from record* -> instrinfo instead of std::string -> instrinfo. This speeds up tblgen on cellcpu from 7.28 -> 5.98s with a debug build (20%). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98916 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/CodeGenDAGPatterns.h
|
6c6ba364931acb113973ad3e6d69736969c59299 |
|
19-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
infer results of a pattern from implicit defs. This allows you to do something like this: def : Pat<(add ...), (FOOINST)>; When fooinst only has a single implicit def (e.g. to R1). This will be handled as if written as (set R1, (FOOINST ...)) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98897 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/CodeGenDAGPatterns.h
|
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/CodeGenDAGPatterns.h
|
117ccb7e518f05e4bf3df058fc402262f897ff0b |
|
01-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
Fix PR2590 by making PatternSortingPredicate actually be ordered correctly. Previously it would get in trouble when two patterns were too similar and give them nondet ordering. We force this by using the record ID order as a fallback. The testsuite diff is due to alpha patterns being ordered slightly differently, the change is a semantic noop afaict: < lda $0,-100($16) --- > subq $16,100,$0 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97509 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/CodeGenDAGPatterns.h
|
225798143dbec36685f9d1e2fa82f5c4e70b0bf5 |
|
28-Feb-2010 |
Chris Lattner <sabre@nondot.org> |
Generalize my hack to use SDNodeInfo to find out when a node is always guaranteed to have a particular type instead of hacking in ISD::STORE explicitly. This allows us to use implied types for a broad range of nodes, even target specific ones. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97355 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/CodeGenDAGPatterns.h
|
25b6f91c549225ae4fc9855b9c82a46d05dfd4d8 |
|
23-Feb-2010 |
Chris Lattner <sabre@nondot.org> |
merge some code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96896 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/CodeGenDAGPatterns.h
|
b49985a8499e18675db7e9baf920d6ef4e2b65cf |
|
18-Feb-2010 |
Chris Lattner <sabre@nondot.org> |
start sketching out the structure of code for result emission generation. Nothing real here yet. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96575 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/CodeGenDAGPatterns.h
|
e39650a805425ffdbd79692c7d1bad80f7332dae |
|
16-Feb-2010 |
Chris Lattner <sabre@nondot.org> |
add support for the new isel matcher to generate (isprofitable|islegal)tofold checks. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96331 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/CodeGenDAGPatterns.h
|
751d5aa1eadf041f00acf76f3b641549c8be3998 |
|
14-Feb-2010 |
Chris Lattner <sabre@nondot.org> |
constize git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96199 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/CodeGenDAGPatterns.h
|
47661320363a8bf0bb1401a8c1893755fb77c8f6 |
|
14-Feb-2010 |
Chris Lattner <sabre@nondot.org> |
clean up a bunch of code, move some random predicates on TreePatternNode to be methods on TreePatternNode. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96197 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/CodeGenDAGPatterns.h
|
383fed9c7aa3b09195bcc2f5f2635ff8bc7819e3 |
|
14-Feb-2010 |
Chris Lattner <sabre@nondot.org> |
add an insertion operator. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96187 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/CodeGenDAGPatterns.h
|
e854273892a5fed9a797ed58e472cca2e95fcc33 |
|
09-Dec-2009 |
Daniel Dunbar <daniel@zuster.org> |
Remove unneeded ';' and a class/struct mismatch (noticed by clang). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90934 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/CodeGenDAGPatterns.h
|
11ee508d7bd37f2b007da735fbd2c1497ed51848 |
|
15-Oct-2009 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Report errors correctly for unselected target intrinsics. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84193 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/CodeGenDAGPatterns.h
|
cdfa01bf0fd4fd9228e8cf32eae9205d067e147a |
|
29-Aug-2009 |
Bob Wilson <bob.wilson@apple.com> |
PR4795: Remove EEVT::isFP, isInt and isVec types used by TableGen's type inferencing. As far as I can tell, these are equivalent to the existing MVT::fAny, iAny and vAny types, and having both of them makes it harder to reason about and modify the type inferencing code. The specific problem in PR4795 occurs when updating a vAny type to be fAny or iAny, or vice versa. Both iAny and fAny include vector types -- they intersect with the set of types represented by vAny. When merging them, choose fAny/iAny to represent the intersection. This is not perfect, since fAny/iAny also include scalar types, but it is good enough for TableGen's type inferencing. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80423 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/CodeGenDAGPatterns.h
|
5b9e7ef627aa1e2f49a6ee85e718199799841f7e |
|
23-Aug-2009 |
Benjamin Kramer <benny.kra@googlemail.com> |
Try to fix MSVC build after r79846. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79850 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/CodeGenDAGPatterns.h
|
6f5cc82686d6f25abc3e373b241bc2cb47d87268 |
|
23-Aug-2009 |
Daniel Dunbar <daniel@zuster.org> |
Fix non-determinism in DAGISel emitter. - This manifested as non-determinism in the .inc output in rare cases (when two distinct patterns ended up being equivalent, which is rather rare). That meant the pattern matching was non-deterministic, which could eventually mean the code generator selected different instructions based on the arch. - It's probably worth making the DAGISel ensure a total ordering (or force the user to), but the simple fix here is to totally order the Record* maps based on a unique ID. - PR4672, PR4711. Yay: -- ddunbar@giles:~$ cat ~/llvm.obj.64/lib/Target/*/*.inc | shasum d1099ff34b21459a5a3e7021c225c080e6017ece - ddunbar@giles:~$ cat ~/llvm.obj.ppc/lib/Target/*/*.inc | shasum d1099ff34b21459a5a3e7021c225c080e6017ece - -- git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79846 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/CodeGenDAGPatterns.h
|
36e3e668be0c4914660575d7cea800b0d51a4116 |
|
13-Aug-2009 |
Bob Wilson <bob.wilson@apple.com> |
Add a new "SDTCisVec" SDTypeConstraint. This complements the vAny type. There have been a few times where I've wanted this but ended up leaving the operand type unconstrained. It is easy to add this now and should help catch errors in the future. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78849 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/CodeGenDAGPatterns.h
|
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/CodeGenDAGPatterns.h
|
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/CodeGenDAGPatterns.h
|
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/CodeGenDAGPatterns.h
|
9008ca6b6b4f638cfafccb593cbc5b1d3f5ab877 |
|
27-Apr-2009 |
Nate Begeman <natebegeman@mac.com> |
2nd attempt, fixing SSE4.1 issues and implementing feedback from duncan. PR2957 ISD::VECTOR_SHUFFLE now stores an array of integers representing the shuffle mask internal to the node, rather than taking a BUILD_VECTOR of ConstantSDNodes as the shuffle mask. A value of -1 represents UNDEF. In addition to eliminating the creation of illegal BUILD_VECTORS just to represent shuffle masks, we are better about canonicalizing the shuffle mask, resulting in substantially better code for some classes of shuffles. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@70225 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/CodeGenDAGPatterns.h
|
15684b29552393553524171bff1913e750f390f8 |
|
24-Apr-2009 |
Rafael Espindola <rafael.espindola@gmail.com> |
Revert 69952. Causes testsuite failures on linux x86-64. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@69967 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/CodeGenDAGPatterns.h
|
b706d29f9c5ed3ed9acc82f7ab46205ba56b92dc |
|
24-Apr-2009 |
Nate Begeman <natebegeman@mac.com> |
PR2957 ISD::VECTOR_SHUFFLE now stores an array of integers representing the shuffle mask internal to the node, rather than taking a BUILD_VECTOR of ConstantSDNodes as the shuffle mask. A value of -1 represents UNDEF. In addition to eliminating the creation of illegal BUILD_VECTORS just to represent shuffle masks, we are better about canonicalizing the shuffle mask, resulting in substantially better code for some classes of shuffles. A clean up of x86 shuffle code, and some canonicalizing in DAGCombiner is next. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@69952 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/CodeGenDAGPatterns.h
|
e1ca7c4dd5b1df27b9b1621d5d032e7ce87a9243 |
|
31-Mar-2009 |
Dan Gohman <gohman@apple.com> |
Add a comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68111 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/CodeGenDAGPatterns.h
|
da4231f134989af7dc6bd3408821ba573def27b2 |
|
26-Mar-2009 |
Jim Grosbach <grosbach@apple.com> |
fix a few spelling errors and typos git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@67758 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/CodeGenDAGPatterns.h
|
32c1a4c342b252c5709abbe01172112fde9e0bc1 |
|
09-Feb-2009 |
Evan Cheng <evan.cheng@apple.com> |
Eliminate a 'control reaches end of non-void function' warning. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@64111 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/CodeGenDAGPatterns.h
|
49de98214b82fefeb8f16efbf8cdd8813a85469b |
|
05-Feb-2009 |
Dale Johannesen <dalej@apple.com> |
Reapply 63765. Patches for clang and llvm-gcc to follow. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63812 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/CodeGenDAGPatterns.h
|
4d452de1506344bf1d28bb4a8c4ddb78c51a28c8 |
|
04-Feb-2009 |
Dale Johannesen <dalej@apple.com> |
Reverting 63765. This broke the build of both clang and llvm-gcc. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63786 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/CodeGenDAGPatterns.h
|
d24479730a8790d82c4859dc477bc2416d7a6bda |
|
04-Feb-2009 |
Nate Begeman <natebegeman@mac.com> |
New feature: add support for target intrinsics being defined in the target directories themselves. This also means that VMCore no longer needs to know about every target's list of intrinsics. Future work will include converting the PowerPC target to this interface as an example implementation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63765 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/CodeGenDAGPatterns.h
|
6c01ca9e29816e36e96112ed541ecf3414a7aad2 |
|
05-Jan-2009 |
Bob Wilson <bob.wilson@apple.com> |
Fix spelling in some comments. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61702 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/CodeGenDAGPatterns.h
|
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/CodeGenDAGPatterns.h
|
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/CodeGenDAGPatterns.h
|
e3b3a7241c01f26613694e53b26b01abf764ddfc |
|
30-Jul-2008 |
Mon P Wang <wangmp@apple.com> |
Added support for overloading intrinsics (atomics) based on pointers to different address spaces. This alters the naming scheme for those intrinsics, e.g., atomic.load.add.i32 => atomic.load.add.i32.p0i32 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54195 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/CodeGenDAGPatterns.h
|
6bd9567a6a1ba62118cdd258ddc52ea8f82ff511 |
|
16-Jun-2008 |
Evan Cheng <evan.cheng@apple.com> |
- Add "Commutative" property to intrinsics. This allows tblgen to generate the commuted variants for dagisel matching code. - Mark lots of X86 intrinsics as "Commutative" to allow load folding. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52353 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/CodeGenDAGPatterns.h
|
83ec4b6711980242ef3c55a4fa36b2d7a39c1bfb |
|
06-Jun-2008 |
Duncan Sands <baldrick@free.fr> |
Wrap MVT::ValueType in a struct to get type safety and better control the abstraction. Rename the type to MVT. To update out-of-tree patches, the main thing to do is to rename MVT::ValueType to MVT, and rewrite expressions like MVT::getSizeInBits(VT) in the form VT.getSizeInBits(). Use VT.getSimpleVT() to extract a MVT::SimpleValueType for use in switch statements (you will get an assert failure if VT is an extended value type - these shouldn't exist after type legalization). This results in a small speedup of codegen and no new testsuite failures (x86-64 linux). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52044 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/CodeGenDAGPatterns.h
|
ee4fa1977dd3a495a8857eef924ee5961db765c6 |
|
03-Apr-2008 |
Dan Gohman <gohman@apple.com> |
Move instruction flag inference out of InstrInfoEmitter and into CodeGenDAGPatterns, where it can be used in other tablegen backends. This allows the inference to be done for DAGISelEmitter so that it gets accurate mayLoad/mayStore/isSimpleLoad flags. This brings MemOperand functionality back to where it was before 48329. However, it doesn't solve the problem of anonymous patterns which expand to code that does loads or stores. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49123 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/CodeGenDAGPatterns.h
|
327d0651f8c3b1480d8fc1f4d96e07a1452eaa8c |
|
05-Mar-2008 |
Scott Michel <scottm@aero.org> |
This patch fixes a problem encountered by the CellSPU backend where variants were being pruned in patterns where a variable was used more than once, e.g.: (or (and R32C:$rA, R32C:$rC), (and R32C:$rB, (not R32C:$rC))) In this example, $rC is used more than once and is actually significant to instruction selection pattern matching when commuted variants are produced. This patch scans the pattern's clauses and collects the variables, creating a set of variables that are used more than once. TreePatternNode::isIsomorphicTo() also understands that multiply-used variables are significant. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47950 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/CodeGenDAGPatterns.h
|
b5af3344c196de5ed3f45b250dfb864be6e9ddc5 |
|
09-Feb-2008 |
Nate Begeman <natebegeman@mac.com> |
Tablegen support for insert & extract element matching git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46901 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/CodeGenDAGPatterns.h
|
e67bde5bb1959dbd7085981cb0bcf6f7c749f724 |
|
06-Jan-2008 |
Chris Lattner <sabre@nondot.org> |
set the 'isstore' flag for instructions whose pattern is an intrinsic that writes to memory. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45650 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/CodeGenDAGPatterns.h
|
f1ab4f18aad3950d0b9ff1273a276bb8d195d2d6 |
|
06-Jan-2008 |
Chris Lattner <sabre@nondot.org> |
improve const correctness. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45646 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/CodeGenDAGPatterns.h
|
fe71893183f504feff290e343bf740bd32432129 |
|
06-Jan-2008 |
Chris Lattner <sabre@nondot.org> |
rename CodegenDAGPatterns -> CodeGenDAGPatterns git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45641 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/CodeGenDAGPatterns.h
|
443e3f9dd61b8d0974bb13d484195ce1a9b7536c |
|
05-Jan-2008 |
Chris Lattner <sabre@nondot.org> |
move Node Transformation printing from CodeGenDAGPatterns -> DAGISelEmitter. The only difference in output is that we now print them in alphabetical order instead of reverse alphabetical order. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45635 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/CodeGenDAGPatterns.h
|
dc32f9802adc139e3d7ee5e25fe656b1d3999bc2 |
|
05-Jan-2008 |
Chris Lattner <sabre@nondot.org> |
move predicate printing code from CodeGenDAGPatterns -> DAGISelEmitter. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45634 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/CodeGenDAGPatterns.h
|
60d8139d1b1db8b23c066623d65302dd3dcc4572 |
|
05-Jan-2008 |
Chris Lattner <sabre@nondot.org> |
fix a fixme by improving const correctness. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45633 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/CodeGenDAGPatterns.h
|
6cefb77a7073057fecd721ae141140d75ce76512 |
|
05-Jan-2008 |
Chris Lattner <sabre@nondot.org> |
change getQualifiedName to be a global function. Split the pattern parsing code out from the dag isel emitter into it's own file. No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45632 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/CodeGenDAGPatterns.h
|