mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-01-17 21:35:07 +00:00
use 'match' to simplify some code.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92400 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
e33d413152
commit
3376718505
@ -2949,12 +2949,11 @@ Instruction *InstCombiner::visitSub(BinaryOperator &I) {
|
||||
// Optimize pointer differences into the same array into a size. Consider:
|
||||
// &A[10] - &A[0]: we should compile this to "10".
|
||||
if (TD) {
|
||||
if (PtrToIntInst *LHS = dyn_cast<PtrToIntInst>(Op0))
|
||||
if (PtrToIntInst *RHS = dyn_cast<PtrToIntInst>(Op1))
|
||||
if (Value *Res = OptimizePointerDifference(LHS->getOperand(0),
|
||||
RHS->getOperand(0),
|
||||
I.getType()))
|
||||
return ReplaceInstUsesWith(I, Res);
|
||||
Value *LHSOp, *RHSOp;
|
||||
if (match(Op0, m_Cast<PtrToIntInst>(m_Value(LHSOp))) &&
|
||||
match(Op1, m_Cast<PtrToIntInst>(m_Value(RHSOp))))
|
||||
if (Value *Res = OptimizePointerDifference(LHSOp, RHSOp, I.getType()))
|
||||
return ReplaceInstUsesWith(I, Res);
|
||||
|
||||
// trunc(p)-trunc(q) -> trunc(p-q)
|
||||
if (TruncInst *LHST = dyn_cast<TruncInst>(Op0))
|
||||
|
Loading…
x
Reference in New Issue
Block a user