llvm-6502/include/llvm
Evan Cheng c92da3882e There are times when the coalescer would not coalesce away a copy but the copy
can be eliminated by the allocator is the destination and source targets the
same register. The most common case is when the source and destination registers
are in different class. For example, on x86 mov32to32_ targets GR32_ which
contains a subset of the registers in GR32.

The allocator can do 2 things:
1. Set the preferred allocation for the destination of a copy to that of its source.
2. After allocation is done, change the allocation of a copy destination (if
   legal) so the copy can be eliminated.

This eliminates 443 extra moves from 403.gcc.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43662 91177308-0d34-0410-b5e6-96231b3b80d8
2007-11-03 07:20:12 +00:00
..
ADT When converting to integer, do bit manipulations in the destination 2007-11-01 22:43:37 +00:00
Analysis VAArgInst does, in fact, read memory. 2007-11-02 04:01:21 +00:00
Assembly More fleshing out of docs/Passes.html, plus some typo fixes and 2007-10-26 03:03:51 +00:00
Bitcode Added overloaded version of Deserializer::ReadOwnedPtr which allows 2007-11-02 18:04:20 +00:00
CodeGen There are times when the coalescer would not coalesce away a copy but the copy 2007-11-03 07:20:12 +00:00
Config Regenerate. 2007-10-03 12:07:14 +00:00
Debugger For PR797: 2006-08-22 16:06:27 +00:00
ExecutionEngine add a mechanism for the JIT to invoke a function to lazily create functions as they are referenced. 2007-10-22 02:50:12 +00:00
Support The guaranteed alignment of ptr+offset is only the minimum of 2007-10-28 12:59:45 +00:00
System Fix minor doxygen nits. 2007-08-05 20:06:04 +00:00
Target Executive summary: getTypeSize -> getTypeStoreSize / getABITypeSize. 2007-11-01 20:53:16 +00:00
Transforms Reg2Mem cleanup and optimizations: 2007-10-21 23:05:16 +00:00
AbstractTypeUser.h Here is the bulk of the sanitizing. 2007-07-05 17:07:56 +00:00
Argument.h make these accessors private. 2007-05-23 05:46:04 +00:00
AutoUpgrade.h This is the patch to provide clean intrinsic function overloading support in LLVM. It cleans up the intrinsic definitions and generally smooths the process for more complicated intrinsic writing. It will be used by the upcoming atomic intrinsics as well as vector and float intrinsics in the future. 2007-08-04 01:51:18 +00:00
BasicBlock.h better portability for intptr_t. 2007-05-18 07:07:05 +00:00
CallGraphSCCPass.h Add explicit keywords. 2007-07-02 14:53:37 +00:00
CallingConv.h Fix 80 col violations. 2007-04-16 21:24:12 +00:00
Constant.h add a Constant::getAllOnesValue helper function, which works on integers 2007-06-15 06:10:53 +00:00
Constants.h Get rid of compilation warning during release builds 2007-11-01 08:24:40 +00:00
DerivedTypes.h Updated VC++ build system. 2007-10-17 14:56:40 +00:00
Function.h clarify precedence, no functionality change. 2007-08-20 21:31:08 +00:00
GlobalAlias.h Implement review feedback 2007-04-29 18:02:48 +00:00
GlobalValue.h Change casts from old style to new style. This helps document the details 2007-08-12 08:12:35 +00:00
GlobalVariable.h Implement review feedback. Aliasees can be either GlobalValue's or 2007-04-28 13:45:00 +00:00
InlineAsm.h represent indirect operands explicitly in inline asm strings. 2007-04-28 01:02:58 +00:00
InstrTypes.h Updated VC++ build system. 2007-10-17 14:56:40 +00:00
Instruction.def Changes to support making the shift instructions be true BinaryOperators. 2007-02-02 02:16:23 +00:00
Instruction.h Instruction:: Next/Prev accessors are now private 2007-04-17 18:03:55 +00:00
Instructions.h Updated VC++ build system. 2007-10-17 14:56:40 +00:00
IntrinsicInst.h For PR950: 2006-10-20 07:07:24 +00:00
Intrinsics.h For PR1297: 2007-04-01 07:26:35 +00:00
Intrinsics.td Model stacksave and stackrestore as both writing memory, since we 2007-10-29 05:47:52 +00:00
IntrinsicsPowerPC.td Convert the intrinsic function definitions to use llvm_i32_ty instead of 2006-12-31 22:24:55 +00:00
IntrinsicsX86.td Add missing SSE builtins: CVTPD2PI, CVTPS2PI, 2007-10-30 22:15:38 +00:00
LinkAllPasses.h Remove RLE from the headers, since the pass itself is gone now. 2007-09-14 22:54:46 +00:00
LinkAllVMCore.h For PR780: 2006-07-26 16:55:39 +00:00
Linker.h Fix minor doxygen nits. 2007-08-05 20:06:04 +00:00
LinkTimeOptimizer.h Add printVersion(). Linker can use it to print LLVM version number. 2007-02-01 01:46:06 +00:00
Module.h Fixing an comment in Module.h that refers to a nonexistent parameter. 2007-09-18 02:09:34 +00:00
ModuleProvider.h add a hook to demat functions. 2007-03-29 18:30:26 +00:00
ParameterAttributes.h Support for trampolines, except for X86 codegen which is 2007-07-27 12:58:54 +00:00
Pass.h Allow passes to just pass up "FunctionPass(&ID)" instead of "FunctionPass((intptr_t)&ID)" 2007-10-08 03:45:44 +00:00
PassAnalysisSupport.h Add a addRequiredTransitiveID member function, which is to 2007-05-14 14:21:46 +00:00
PassManager.h remove unimplemented ctor, add some comments. 2007-10-25 05:19:24 +00:00
PassManagers.h Fix a using namespace llvm; in a header file. 2007-10-03 19:04:09 +00:00
PassSupport.h update comment. 2007-10-18 16:10:17 +00:00
SymbolTableListTraits.h Change casts from old style to new style. This helps document the details 2007-08-12 08:12:35 +00:00
Type.h Fix spelling. 2007-09-25 13:53:22 +00:00
TypeSymbolTable.h Properly initialize value :) 2007-07-19 15:32:47 +00:00
Use.h Add a new use_iterator::atEnd() method, which allows us to shrink 2007-10-11 04:18:11 +00:00
User.h Switch ValueSymbolTable to use StringMap<Value*> instead of std::map<std::string, Value*> 2007-02-12 05:18:08 +00:00
Value.h add Value::getNameStart/getNameLen() accessors. 2007-08-10 15:34:35 +00:00
ValueSymbolTable.h better portability for intptr_t. 2007-05-18 07:07:05 +00:00