- Mar 01, 2010
-
-
Chris Lattner authored
llvm-svn: 97508
-
Chris Lattner authored
ComplexPattern at the root be generated multiple times, once for each opcode they are part of. This encourages factoring because the opcode checks get treated just like everything else in the matcher. llvm-svn: 97439
-
Chris Lattner authored
to a scope where every child starts with a CheckOpcode, but executes more efficiently. Enhance DAGISelMatcherOpt to form it. This also fixes a bug in CheckOpcode: apparently the SDNodeInfo objects are not pointer comparable, we have to compare the enum name. llvm-svn: 97438
-
Chris Lattner authored
pair. This encourages MorphNodeTo formation, this gets us 200 more MorphNodeTo's on X86 and shrinks the table a bit. llvm-svn: 97434
-
Chris Lattner authored
slot they're recording into, no functionality change. llvm-svn: 97433
-
Chris Lattner authored
so that we get grouping at the top level. Add an optimization to reorder type check & record nodes after opcode checks. We prefer to expose tree shape matching which improves grouping and will enhance the next optimization. llvm-svn: 97432
-
Chris Lattner authored
the vtlist for emitnode. llvm-svn: 97429
-
- Feb 28, 2010
-
-
Chris Lattner authored
specifies whether there is an output flag or not. Use this instead of redundantly encoding the chain/flag results in the output vtlist. llvm-svn: 97419
-
Chris Lattner authored
is just a silly wrapper around MorphNodeTo. llvm-svn: 97416
-
Chris Lattner authored
even some the old isel didn't. There are several parts of this that make me feel dirty, but it's no worse than the old isel. I'll clean up the parts I can do without ripping out the old one next. llvm-svn: 97415
-
Chris Lattner authored
it will populate. llvm-svn: 97363
-
Chris Lattner authored
because I have to go on another detour first. llvm-svn: 97362
-
- Feb 27, 2010
-
-
Chris Lattner authored
the opcode name. This gives the optimizer more semantic info. llvm-svn: 97346
-
Chris Lattner authored
llvm-svn: 97315
-
Chris Lattner authored
with getType() == MVT::i32 etc. Teach it that two different integer constants are contradictory. This cuts 1K off the X86 table, down to 98k llvm-svn: 97314
-
Chris Lattner authored
predicates. For example if we have: Scope: CheckType i32 ABC CheckType f32 DEF CheckType i32 GHI Then we know that we can transform this into: Scope: CheckType i32 Scope ABC GHI CheckType f32 DEF This reorders the check for the 'GHI' predicate above the check for the 'DEF' predidate. However it is safe to do this in this situation because we know that a node cannot have both an i32 and f32 type. We're now doing more factoring that the old isel did. llvm-svn: 97312
-
Chris Lattner authored
as deeply into the pattern as we can get away with. In pratice, this means "all the way to to the emitter code, but not across ComplexPatterns". This substantially increases the amount of factoring we get. llvm-svn: 97305
-
- Feb 26, 2010
-
-
Chris Lattner authored
gross little neighbor merging implementation. This one has the benefit of not violating the ordering of patterns, so it generates code that passes tests again. llvm-svn: 97218
-
Chris Lattner authored
current design. This generates a matcher that successfully runs, but it turns out that the factoring we're doing violates the ordering of patterns, so we end up matching (e.g.) movups where we want movaps. This won't due, but I'll address this in a follow on patch. It's nice to not be on by default yet! :) llvm-svn: 97215
-
- Feb 25, 2010
-
-
Chris Lattner authored
instead of to have a chained series of scope nodes. This makes the generated table smaller, improves the efficiency of the interpreter, and make the factoring optimization much more reasonable to implement. llvm-svn: 97160
-
Chris Lattner authored
splitting all the patterns under scope nodes into equality sets based on their first node. The second step is to rewrite the graph info a form that exposes the sharing. Before I do this, I want to redesign the Scope node. llvm-svn: 97130
-
Chris Lattner authored
llvm-svn: 97096
-
Chris Lattner authored
llvm-svn: 97094
-
Chris Lattner authored
reflect what it does. Switch the sense of the Next and the Check arms to be more logical. No functionality change. llvm-svn: 97093
-
- Feb 24, 2010
-
-
Chris Lattner authored
x86 table by 1200 bytes. llvm-svn: 97053
-
Chris Lattner authored
movechild/record -> recordchild/movechild and movechild/moveparent -> noop xforms. This slightly shrinks the tables (x86 to 117454) and enables adding future improvements. llvm-svn: 97051
-
Chris Lattner authored
the new isel: fold movechild+record+moveparent into a single recordchild N node. This shrinks the X86 table from 125443 to 117502 bytes. llvm-svn: 97031
-
Chris Lattner authored
Also add an easy macro at the top of DAGISelEmitter.cpp to enable it. Lets see if I can avoid accidentally turning it on :) llvm-svn: 97029
-
- Jan 27, 2010
-
-
Jeffrey Yasskin authored
Modules and ModuleProviders. Because the "ModuleProvider" simply materializes GlobalValues now, and doesn't provide modules, it's renamed to "GVMaterializer". Code that used to need a ModuleProvider to materialize Functions can now materialize the Functions directly. Functions no longer use a magic linkage to record that they're materializable; they simply ask the GVMaterializer. Because the C ABI must never change, we can't remove LLVMModuleProviderRef or the functions that refer to it. Instead, because Module now exposes the same functionality ModuleProvider used to, we store a Module* in any LLVMModuleProviderRef and translate in the wrapper methods. The bindings to other languages still use the ModuleProvider concept. It would probably be worth some time to update them to follow the C++ more closely, but I don't intend to do it. Fixes http://llvm.org/PR5737 and http://llvm.org/PR5735. llvm-svn: 94686
-
- Dec 29, 2007
-
-
Chris Lattner authored
llvm-svn: 45418
-
- Aug 03, 2006
-
-
Chris Lattner authored
llvm-svn: 29506
-
- Jul 27, 2005
-
-
Jeff Cohen authored
llvm-svn: 22523
-
- Apr 25, 2005
-
-
Reid Spencer authored
destructor. Just add the do-nothing virtual destructor. llvm-svn: 21524
-
- Apr 22, 2005
-
-
Misha Brukman authored
llvm-svn: 21422
-
- Feb 17, 2005
-
-
Misha Brukman authored
llvm-svn: 20232
-
- Aug 12, 2004
-
-
Chris Lattner authored
llvm-svn: 15698
-
Chris Lattner authored
llvm-svn: 15691
-
- Mar 12, 2004
-
-
Misha Brukman authored
header file and all those who #include it. llvm-svn: 12297
-