mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2024-12-14 11:32:34 +00:00
Make SCEVAddRecExpr's getType return a pointer type when the add
has a pointer member. This helps reduce unnecessary bitcasting and uglygeps. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93939 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
bbe2bbeac8
commit
2b98bd23cb
@ -295,6 +295,13 @@ namespace llvm {
|
||||
public:
|
||||
virtual const char *getOperationStr() const { return " + "; }
|
||||
|
||||
virtual const Type *getType() const {
|
||||
// Use the type of the last operand, which is likely to be a pointer
|
||||
// type, if there is one. This doesn't usually matter, but it can help
|
||||
// reduce casts when the expressions are expanded.
|
||||
return getOperand(getNumOperands() - 1)->getType();
|
||||
}
|
||||
|
||||
/// Methods for support type inquiry through isa, cast, and dyn_cast:
|
||||
static inline bool classof(const SCEVAddExpr *S) { return true; }
|
||||
static inline bool classof(const SCEV *S) {
|
||||
|
@ -1,6 +1,6 @@
|
||||
; RUN: llc < %s -march=x86 -stats |& grep {Number of reloads omited} | grep 1
|
||||
; RUN: llc < %s -march=x86 -stats |& grep {Number of available reloads turned into copies} | grep 1
|
||||
; RUN: llc < %s -march=x86 -stats |& grep {Number of machine instrs printed} | grep 40
|
||||
; RUN: llc < %s -march=x86 -stats |& grep {Number of loads added} | grep 2
|
||||
; RUN: llc < %s -march=x86 -stats |& grep {Number of register spills} | grep 1
|
||||
; RUN: llc < %s -march=x86 -stats |& grep {Number of machine instrs printed} | grep 38
|
||||
; PR3495
|
||||
; The loop reversal kicks in once here, resulting in one fewer instruction.
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user