llvm-6502/lib/Transforms/Scalar
Dan Gohman eee962e1ce Teach InstCombine's ComputeMaskedBits to handle pointer expressions
in addition to integer expressions. Rewrite GetOrEnforceKnownAlignment
as a ComputeMaskedBits problem, moving all of its special alignment
knowledge to ComputeMaskedBits as low-zero-bits knowledge.

Also, teach ComputeMaskedBits a few basic things about Mul and PHI
instructions.

This improves ComputeMaskedBits-based simplifications in a few cases,
but more noticeably it significantly improves instcombine's alignment
detection for loads, stores, and memory intrinsics.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49492 91177308-0d34-0410-b5e6-96231b3b80d8
2008-04-10 18:43:06 +00:00
..
ADCE.cpp API changes for class Use size reduction, wave 1. 2008-04-06 20:25:17 +00:00
BasicBlockPlacement.cpp Remove attribution from file headers, per discussion on llvmdev. 2007-12-29 20:36:04 +00:00
CodeGenPrepare.cpp silence a warning when assertions are disabled. 2008-04-06 21:44:08 +00:00
CondPropagate.cpp Remove attribution from file headers, per discussion on llvmdev. 2007-12-29 20:36:04 +00:00
ConstantProp.cpp Remove attribution from file headers, per discussion on llvmdev. 2007-12-29 20:36:04 +00:00
DCE.cpp Remove attribution from file headers, per discussion on llvmdev. 2007-12-29 20:36:04 +00:00
DeadStoreElimination.cpp Be more precise when eliminating pointers bue to memcpy's. This allows more 2008-02-04 04:53:00 +00:00
GCSE.cpp API changes for class Use size reduction, wave 1. 2008-04-06 20:25:17 +00:00
GVN.cpp Factor a bunch of functionality related to memcpy and memset transforms out of 2008-04-09 08:23:16 +00:00
GVNPRE.cpp API changes for class Use size reduction, wave 1. 2008-04-06 20:25:17 +00:00
IndVarSimplify.cpp API changes for class Use size reduction, wave 1. 2008-04-06 20:25:17 +00:00
InstructionCombining.cpp Teach InstCombine's ComputeMaskedBits to handle pointer expressions 2008-04-10 18:43:06 +00:00
LICM.cpp Use empty() instead of comparing size() with zero. 2008-01-29 13:02:09 +00:00
LoopIndexSplit.cpp API changes for class Use size reduction, wave 1. 2008-04-06 20:25:17 +00:00
LoopRotation.cpp API changes for class Use size reduction, wave 1. 2008-04-06 20:25:17 +00:00
LoopStrengthReduce.cpp API changes for class Use size reduction, wave 1. 2008-04-06 20:25:17 +00:00
LoopUnroll.cpp Add comment. 2008-03-19 23:05:52 +00:00
LoopUnswitch.cpp API changes for class Use size reduction, wave 1. 2008-04-06 20:25:17 +00:00
Makefile remove attribution from lib Makefiles. 2007-12-29 20:09:26 +00:00
MemCpyOptimizer.cpp Factor a bunch of functionality related to memcpy and memset transforms out of 2008-04-09 08:23:16 +00:00
PredicateSimplifier.cpp Fix "Control reaches the end of non-void function" warnings, 2008-03-30 18:22:13 +00:00
Reassociate.cpp Don't include <map> in Pass.h, which doesn't need it. This requires 2008-03-21 23:51:57 +00:00
Reg2Mem.cpp Remove attribution from file headers, per discussion on llvmdev. 2007-12-29 20:36:04 +00:00
Scalar.cpp C and Objective Caml bindings for mem2reg and reg2mem. 2008-03-20 17:16:03 +00:00
ScalarReplAggregates.cpp API changes for class Use size reduction, wave 1. 2008-04-06 20:25:17 +00:00
SCCP.cpp Be conservative if getresult operand is neither call nor invoke. 2008-04-09 15:58:24 +00:00
SimplifyCFG.cpp API changes for class Use size reduction, wave 1. 2008-04-06 20:25:17 +00:00
TailDuplication.cpp Don't include <map> in Pass.h, which doesn't need it. This requires 2008-03-21 23:51:57 +00:00
TailRecursionElimination.cpp API changes for class Use size reduction, wave 1. 2008-04-06 20:25:17 +00:00