llvm-6502/lib
Chris Lattner 2392ae7d73 Implement rdar://7860110 (also in target/readme.txt) narrowing
a load/or/and/store sequence into a narrower store when it is
safe.  Daniel tells me that clang will start producing this sort
of thing with bitfields, and this does  trigger a few dozen times
on 176.gcc produced by llvm-gcc even now.

This compiles code like CodeGen/X86/2009-05-28-DAGCombineCrash.ll 
into:

        movl    %eax, 36(%rdi)

instead of:

        movl    $4294967295, %eax       ## imm = 0xFFFFFFFF
        andq    32(%rdi), %rax
        shlq    $32, %rcx
        addq    %rax, %rcx
        movq    %rcx, 32(%rdi)

and each of the testcases into a single store.  Each of them used
to compile into craziness like this:

_test4:
	movl	$65535, %eax            ## imm = 0xFFFF
	andl	(%rdi), %eax
	shll	$16, %esi
	addl	%eax, %esi
	movl	%esi, (%rdi)
	ret




git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101343 91177308-0d34-0410-b5e6-96231b3b80d8
2010-04-15 04:48:01 +00:00
..
Analysis Constify GetConstantStringInfo. 2010-04-14 22:20:45 +00:00
Archive
AsmParser
Bitcode
CodeGen Implement rdar://7860110 (also in target/readme.txt) narrowing 2010-04-15 04:48:01 +00:00
CompilerDriver
ExecutionEngine Add const qualifiers to CodeGen's use of LLVM IR constructs. 2010-04-15 01:51:59 +00:00
Linker
MC implement mc asmparser support for '.', which gets the 2010-04-14 04:40:28 +00:00
Support
System
Target Implement rdar://7860110 (also in target/readme.txt) narrowing 2010-04-15 04:48:01 +00:00
Transforms IPO needs ScalarOpts and InstCombine in its libs 2010-04-14 23:42:23 +00:00
VMCore Move a bunch of methods from CallSite to CallSiteBase, so that they can 2010-04-14 21:47:32 +00:00
Makefile