llvm-6502/include/llvm
Dan Gohman 8be6bbe5bf Eliminate the ISel priority queue, which used the topological order for a
priority function. Instead, just iterate over the AllNodes list, which is
already in topological order. This eliminates a fair amount of bookkeeping,
and speeds up the isel phase by about 15% on many testcases.

The impact on most targets is that AddToISelQueue calls can be simply removed.

In the x86 target, there are two additional notable changes.

The rule-bending AND+SHIFT optimization in MatchAddress that creates new
pre-isel nodes during isel is now a little more verbose, but more robust.
Instead of either creating an invalid DAG or creating an invalid topological
sort, as it has historically done, it can now just insert the new nodes into
the node list at a position where they will be consistent with the topological
ordering.

Also, the address-matching code has logic that checked to see if a node was
"already selected". However, when a node is selected, it has all its uses
taken away via ReplaceAllUsesWith or equivalent, so it won't recieve any
further visits from MatchAddress. This code is now removed.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58748 91177308-0d34-0410-b5e6-96231b3b80d8
2008-11-05 04:14:16 +00:00
..
ADT Overload AddInteger on int/long/long long instead of on int/int64_t, 2008-11-03 19:40:18 +00:00
Analysis Trim #includes. 2008-10-16 20:18:31 +00:00
Assembly Move Print*Pass to use raw_ostream. 2008-10-22 03:25:22 +00:00
Bitcode Add raw_ostream versions of WriteBitcodeToFile and BitcodeWriterPass. 2008-10-22 17:39:14 +00:00
CodeGen Eliminate the ISel priority queue, which used the topological order for a 2008-11-05 04:14:16 +00:00
CompilerDriver Build system tweaks to make it more convenient for the plugin authors. 2008-10-02 21:15:05 +00:00
Config CMake: GetTargetTriple: new module for determining the target 2008-10-26 00:47:52 +00:00
Debugger Fix more -Wshorten-64-to-32 warnings. 2008-05-05 18:30:58 +00:00
ExecutionEngine Support for allocation of TLS variables in the JIT. Allocation of a global 2008-10-25 15:41:43 +00:00
Support Symbol visibility is unsupported on cygwin too. 2008-10-31 18:05:01 +00:00
System Update the stub and callback code to handle lazy compilation. The stub 2008-10-20 21:39:23 +00:00
Target Rename isGVLazyPtr to isGVNonLazyPtr relocation. This represents Mac OS X 2008-11-05 01:50:32 +00:00
Transforms Do now allow InlineAlways pass to remove dead functions. 2008-11-05 01:39:16 +00:00
AbstractTypeUser.h Don't attribute in file headers anymore. See llvmdev for the 2007-12-29 19:59:42 +00:00
Argument.h Large mechanical patch. 2008-09-25 21:00:45 +00:00
Attributes.h Fix whitespace in a comment. 2008-10-15 22:55:03 +00:00
AutoUpgrade.h Enable first-class aggregates support. 2008-07-23 00:34:11 +00:00
BasicBlock.h Switch the asmprinter (.ll) and all the stuff it requires over to 2008-08-23 22:23:09 +00:00
CallGraphSCCPass.h Tidy up several unbeseeming casts from pointer to intptr_t. 2008-09-04 17:05:41 +00:00
CallingConv.h Add "inreg" field to CallSDNode (doesn't increase 2008-09-26 19:31:26 +00:00
Constant.h fix typo's 2008-10-13 10:28:12 +00:00
Constants.h A file missed from previous checkin. 2008-10-09 23:01:07 +00:00
DerivedTypes.h Remove unused parameter. Some clients might use -Werror when compiling and 2008-06-05 07:24:08 +00:00
Function.h Fix disagreement about where the attributes are 2008-10-07 22:33:44 +00:00
GlobalAlias.h Make safer variant of alias resolution routine to be default 2008-09-09 20:05:04 +00:00
GlobalValue.h Rename isWeakForLinker to mayBeOverridden. Use it 2008-09-29 11:25:42 +00:00
GlobalVariable.h Add GlobalValue::{removeFromParent,eraseFromParent} 2008-08-29 07:30:15 +00:00
InlineAsm.h Keep track of *which* input constraint matches an output 2008-10-17 16:47:46 +00:00
InstrTypes.h Use the opcode predicates, instead of duplicating the code. 2008-10-17 21:42:45 +00:00
Instruction.def Cosmetic. 2008-10-06 20:33:02 +00:00
Instruction.h Correct the name of isTrapping in comments. 2008-10-15 22:56:21 +00:00
Instructions.h Don't force things to be Value * when they're not. 2008-10-29 00:30:54 +00:00
IntrinsicInst.h Split the SelectionDAG-building code, including the FunctionLoweringInfo 2008-09-03 16:12:24 +00:00
Intrinsics.h Large mechanical patch. 2008-09-25 21:00:45 +00:00
Intrinsics.td Make llvm memory barrier available as an intrinsic 2008-10-18 02:48:13 +00:00
IntrinsicsAlpha.td Note that ADDC and company don't actually expand yet (missing in legalize 2008-10-07 02:10:26 +00:00
IntrinsicsARM.td remove attribution from a variety of miscellaneous files. 2007-12-29 22:59:10 +00:00
IntrinsicsCellSPU.td Final de-tabification. 2008-02-27 06:33:05 +00:00
IntrinsicsPowerPC.td Implement __sync_synchronize on ppc32. Patch by Gary Benson. 2008-08-22 17:20:54 +00:00
IntrinsicsX86.td Removed pinsrd and pinsrq intrinsics because the code generator does not support 2008-10-15 06:27:16 +00:00
LinkAllPasses.h Add a new pass to simplify specific half_powr function calls. This is 2008-11-04 23:41:45 +00:00
LinkAllVMCore.h prune unneeded #includes 2008-04-01 04:00:45 +00:00
Linker.h Make comments and code for QuietWarnings and QuietErrors 2008-10-25 17:57:20 +00:00
Module.h - Add a "getOrInsertGlobal" method to the Module class. This acts similarly to 2008-11-04 22:51:24 +00:00
ModuleProvider.h Remove warnings about unused parameters and shadowed variables. 2008-05-19 20:15:12 +00:00
OperandTraits.h 80col 2008-07-05 22:41:37 +00:00
Pass.h Add an assert to catch user errors like: 2008-10-31 17:27:41 +00:00
PassAnalysisSupport.h Speed up the passmgr by avoiding heap thrashing on vectors. 2008-08-08 05:33:04 +00:00
PassManager.h allow updating the MPM, so that you can use one FunctionPAssManager with 2008-06-26 22:26:45 +00:00
PassManagers.h Trim #includes. 2008-10-16 20:18:31 +00:00
PassSupport.h Correct a comment. 2008-06-24 17:46:48 +00:00
SymbolTableListTraits.h Fold the useful features of alist and alist_node into ilist, and 2008-07-28 21:51:04 +00:00
Type.h add a new form of Type::dump that takes a module for type names, 2008-10-01 20:16:19 +00:00
TypeSymbolTable.h Don't attribute in file headers anymore. See llvmdev for the 2007-12-29 19:59:42 +00:00
Use.h Add comment on how tagged pointers are 2008-10-17 08:31:36 +00:00
User.h Do not allow a user to set the operand for a constant. 2008-10-28 17:22:40 +00:00
Value.h fit in 80 cols 2008-10-28 06:20:17 +00:00
ValueSymbolTable.h implement some fixme's by making "autorenaming" in the value symbol table not 2008-06-27 21:26:26 +00:00