llvm-6502/include/llvm
Chris Lattner 1f821512fc Enhance MemDep: When alias analysis returns a partial alias result,
return it as a clobber.  This allows GVN to do smart things.

Enhance GVN to be smart about the case when a small load is clobbered
by a larger overlapping load.  In this case, forward the value.  This
allows us to compile stuff like this:

int test(void *P) {
  int tmp = *(unsigned int*)P;
  return tmp+*((unsigned char*)P+1);
}

into:

_test:                                  ## @test
	movl	(%rdi), %ecx
	movzbl	%ch, %eax
	addl	%ecx, %eax
	ret

which has one load.  We already handled the case where the smaller
load was from a must-aliased base pointer.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130180 91177308-0d34-0410-b5e6-96231b3b80d8
2011-04-26 01:21:15 +00:00
..
ADT Improve adherence to general style, use "foo_t &x" instead of "foo_t& x" 2011-04-25 21:02:12 +00:00
Analysis Enhance MemDep: When alias analysis returns a partial alias result, 2011-04-26 01:21:15 +00:00
Assembly
Bitcode Fix a ton of comment typos found by codespell. Patch by 2011-04-15 05:18:47 +00:00
CodeGen Let dwarf writer allocate extra space in the debug location expression. This space, if requested, will be used for complex addresses of the Blocks' variables. 2011-04-26 00:12:46 +00:00
CompilerDriver If a class inherits from RefCountedBaseVPTR allow all its subclasses to be used with IntrusiveRefCntPtr. 2011-03-20 06:14:56 +00:00
Config Add InitializeNativeAsmParser function. 2011-03-09 17:25:46 +00:00
ExecutionEngine Fix a ton of comment typos found by codespell. Patch by 2011-04-15 05:18:47 +00:00
MC Remove unused STL header includes. 2011-04-23 19:53:52 +00:00
Object Start migrating mach-o dumping facilities to the object file out of a 2011-04-03 23:51:47 +00:00
Support Comment out some unused parameter names to silence out-of-tree -Wunused warnings. 2011-04-22 11:36:45 +00:00
Target include/llvm/Target/TargetAsmInfo.h: Fix a warning. 2011-04-22 01:56:59 +00:00
Transforms Add independent controls for whether GCOV profiling should emit .gcno files or 2011-04-21 01:56:25 +00:00
AbstractTypeUser.h
Argument.h
Attributes.h
AutoUpgrade.h
BasicBlock.h Revert r129235 pending a vetting of the EH rewrite. 2011-04-10 23:18:04 +00:00
CallGraphSCCPass.h
CallingConv.h Use X86_thiscall calling convention for Win64 as well. 2011-03-03 07:49:07 +00:00
CMakeLists.txt Put targets on folders, if the IDE supports the feature. 2011-02-20 22:06:10 +00:00
Constant.h Fix or remove code which seemed to think that the operand of a Constant 2011-04-11 09:48:55 +00:00
Constants.h PR9214: Convert ConstantExpr::getIndices() to return an ArrayRef, plus 2011-04-13 15:22:40 +00:00
DebugInfoProbe.h Introduce DebugInfoProbe. This is used to monitor how llvm optimizer is treating debugging information. 2011-03-10 00:21:25 +00:00
DerivedTypes.h Make the empty StructType::get overload use an empty ArrayRef. 2011-04-18 14:02:06 +00:00
Function.h
GlobalAlias.h FixedNumOperandTraits and VariadicOperandTraits assumed that, given a 2011-01-11 15:07:38 +00:00
GlobalValue.h hoist GlobalValue::removeDeadConstantUsers up to being a method on Constant. 2011-02-18 04:41:42 +00:00
GlobalVariable.h Fix a ton of comment typos found by codespell. Patch by 2011-04-15 05:18:47 +00:00
GVMaterializer.h
InitializePasses.h Rename LineProfiling to GCOVProfiling to more accurately represent what it 2011-04-16 01:20:23 +00:00
InlineAsm.h Do not model all INLINEASM instructions as having unmodelled side effects. 2011-01-07 23:50:32 +00:00
InstrTypes.h Don't include Operator.h from InstrTypes.h. 2011-04-11 09:35:34 +00:00
Instruction.def
Instruction.h There is no need for isAssociative to take the type as an argument anymore. 2010-12-20 13:10:23 +00:00
Instructions.h Fix a ton of comment typos found by codespell. Patch by 2011-04-15 05:18:47 +00:00
IntrinsicInst.h Teach LazyValueInfo that allocas aren't NULL. Over all of llvm-test, this saves 2011-01-15 09:16:12 +00:00
Intrinsics.h
Intrinsics.td Revamp the SjLj "dispatch setup" intrinsic. 2011-04-05 01:37:43 +00:00
IntrinsicsAlpha.td
IntrinsicsARM.td Revert a minor comment change inadvertently included with r128502. 2011-03-30 05:26:51 +00:00
IntrinsicsCellSPU.td
IntrinsicsPowerPC.td
IntrinsicsPTX.td PTX: Add intrinsics to list of built-in intrinsics, which allows them to be 2011-04-20 15:37:17 +00:00
IntrinsicsX86.td Add 3DNow! intrinsics. 2011-04-15 00:32:41 +00:00
IntrinsicsXCore.td Add XCore intrinsics for initializing / starting / synchronizing threads. 2011-03-31 15:13:13 +00:00
LinkAllPasses.h Add independent controls for whether GCOV profiling should emit .gcno files or 2011-04-21 01:56:25 +00:00
LinkAllVMCore.h
Linker.h
LLVMContext.h
Metadata.h PR9214: Convert Metadata API to use ArrayRef. 2011-04-21 19:59:31 +00:00
Module.h Fix typo in doxy-comment. 2011-04-06 20:54:07 +00:00
OperandTraits.h OperandTraits<>::Layout isn't used for anything. Remove it. 2011-01-14 18:41:56 +00:00
Operator.h implement .ll and .bc support for nsw/nuw on shl and exact on lshr/ashr. 2011-02-07 16:40:21 +00:00
Pass.h Fix a ton of comment typos found by codespell. Patch by 2011-04-15 05:18:47 +00:00
PassAnalysisSupport.h Don't add the same analysis implementation pair twice. 2011-03-30 18:32:53 +00:00
PassManager.h
PassManagers.h
PassRegistry.h
PassSupport.h
SymbolTableListTraits.h
Type.h
TypeSymbolTable.h Fix a ton of comment typos found by codespell. Patch by 2011-04-15 05:18:47 +00:00
Use.h Add missing include for ptrdiff_t. Patch by Joerg Sonnenberger! 2011-01-28 03:52:25 +00:00
User.h Fix typos in assert messages. 2011-03-21 16:38:22 +00:00
Value.h fix incorrect comment. 2011-03-08 16:59:03 +00:00
ValueSymbolTable.h