mirror of
https://github.com/capstone-engine/llvm-capstone.git
synced 2024-12-01 01:31:26 +00:00
Revert patches 348835 and 348571 because they're
causing code size performance regressions. llvm-svn: 350402
This commit is contained in:
parent
71d61567c0
commit
107dd2565c
@ -27,7 +27,6 @@
|
||||
#include "llvm/IR/GlobalAlias.h"
|
||||
#include "llvm/IR/GlobalVariable.h"
|
||||
#include "llvm/IR/Instructions.h"
|
||||
#include "llvm/IR/Module.h"
|
||||
#include "llvm/IR/Operator.h"
|
||||
#include "llvm/IR/PatternMatch.h"
|
||||
#include "llvm/Support/ErrorHandling.h"
|
||||
@ -1078,10 +1077,10 @@ Constant *llvm::ConstantFoldBinaryInstruction(unsigned Opcode, Constant *C1,
|
||||
isa<GlobalValue>(CE1->getOperand(0))) {
|
||||
GlobalValue *GV = cast<GlobalValue>(CE1->getOperand(0));
|
||||
|
||||
unsigned GVAlign =
|
||||
GV->getParent()
|
||||
? GV->getPointerAlignment(GV->getParent()->getDataLayout())
|
||||
: 0;
|
||||
// Functions are at least 4-byte aligned.
|
||||
unsigned GVAlign = GV->getAlignment();
|
||||
if (isa<Function>(GV))
|
||||
GVAlign = std::max(GVAlign, 4U);
|
||||
|
||||
if (GVAlign > 1) {
|
||||
unsigned DstWidth = CI2->getType()->getBitWidth();
|
||||
|
@ -1,27 +0,0 @@
|
||||
; RUN: opt < %s -constprop -S -o - | FileCheck %s
|
||||
|
||||
; Function Attrs: minsize norecurse nounwind optsize readnone
|
||||
define void @foo1() #0 {
|
||||
entry:
|
||||
ret void
|
||||
}
|
||||
|
||||
; Function Attrs: minsize norecurse nounwind optsize readnone
|
||||
define void @foo2() align 4 {
|
||||
entry:
|
||||
ret void
|
||||
}
|
||||
|
||||
; Function Attrs: minsize nounwind optsize
|
||||
define i32 @main() local_unnamed_addr #1 {
|
||||
entry:
|
||||
; CHECK: ptrtoint
|
||||
%call = tail call i32 bitcast (i32 (...)* @process to i32 (i32)*)(i32 and (i32 ptrtoint (void ()* @foo1 to i32), i32 2)) #3
|
||||
; CHECK-NEXT: ptrtoint
|
||||
%call2 = tail call i32 bitcast (i32 (...)* @process to i32 (i32)*)(i32 and (i32 ptrtoint (void ()* @foo2 to i32), i32 2)) #3
|
||||
ret i32 0
|
||||
}
|
||||
|
||||
; Function Attrs: minsize optsize
|
||||
declare i32 @process(...) local_unnamed_addr #2
|
||||
|
16
llvm/test/Assembler/2004-03-07-FunctionAddressAlignment.ll
Normal file
16
llvm/test/Assembler/2004-03-07-FunctionAddressAlignment.ll
Normal file
@ -0,0 +1,16 @@
|
||||
; RUN: llvm-as < %s | llvm-dis | not grep ptrtoint
|
||||
; RUN: verify-uselistorder %s
|
||||
; All of these should be eliminable
|
||||
|
||||
|
||||
define i32 @foo() {
|
||||
ret i32 and (i32 ptrtoint (i32()* @foo to i32), i32 1)
|
||||
}
|
||||
|
||||
define i32 @foo2() {
|
||||
ret i32 and (i32 1, i32 ptrtoint (i32()* @foo2 to i32))
|
||||
}
|
||||
|
||||
define i1 @foo3() {
|
||||
ret i1 icmp ne (i1()* @foo3, i1()* null)
|
||||
}
|
Loading…
Reference in New Issue
Block a user