mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2024-12-13 04:30:23 +00:00
[InstCombine] Actually combine AA metadata when replacing one load with another
Fixes PR24083 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@241955 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
bd884766bf
commit
ca7473f5d0
@ -762,8 +762,6 @@ Instruction *InstCombiner::visitLoadInst(LoadInst &LI) {
|
|||||||
LLVMContext::MD_nonnull,
|
LLVMContext::MD_nonnull,
|
||||||
};
|
};
|
||||||
combineMetadata(NLI, &LI, KnownIDs);
|
combineMetadata(NLI, &LI, KnownIDs);
|
||||||
if (AATags)
|
|
||||||
NLI->setAAMetadata(AATags);
|
|
||||||
};
|
};
|
||||||
|
|
||||||
return ReplaceInstUsesWith(
|
return ReplaceInstUsesWith(
|
||||||
|
@ -3,17 +3,15 @@
|
|||||||
target datalayout = "e-m:e-p:64:64:64-i64:64-f80:128-n8:16:32:64-S128"
|
target datalayout = "e-m:e-p:64:64:64-i64:64-f80:128-n8:16:32:64-S128"
|
||||||
|
|
||||||
; CHECK-LABEL: @test_load_load_combine_metadata(
|
; CHECK-LABEL: @test_load_load_combine_metadata(
|
||||||
; Check that range metadata is combined and AA metadata is preserved
|
; Check that range and AA metadata is combined
|
||||||
; CHECK: %[[V:.*]] = load i32, i32* %0
|
; CHECK: %[[V:.*]] = load i32, i32* %0
|
||||||
; CHECK-SAME: !tbaa !{{[0-9]+}}
|
; CHECK-SAME: !tbaa !{{[0-9]+}}
|
||||||
; CHECK-SAME: !range ![[RANGE:[0-9]+]]
|
; CHECK-SAME: !range ![[RANGE:[0-9]+]]
|
||||||
; CHECK-SAME: !alias.scope !{{[0-9]+}}
|
|
||||||
; CHECK-SAME: !noalias !{{[0-9]+}}
|
|
||||||
; CHECK: store i32 %[[V]], i32* %1
|
; CHECK: store i32 %[[V]], i32* %1
|
||||||
; CHECK: store i32 %[[V]], i32* %2
|
; CHECK: store i32 %[[V]], i32* %2
|
||||||
define void @test_load_load_combine_metadata(i32*, i32*, i32*) {
|
define void @test_load_load_combine_metadata(i32*, i32*, i32*) {
|
||||||
%a = load i32, i32* %0, !tbaa !8, !range !0, !alias.scope !5, !noalias !6
|
%a = load i32, i32* %0, !tbaa !8, !range !0, !alias.scope !5, !noalias !6
|
||||||
%b = load i32, i32* %0, !range !1
|
%b = load i32, i32* %0, !tbaa !8, !range !1
|
||||||
store i32 %a, i32* %1
|
store i32 %a, i32* %1
|
||||||
store i32 %b, i32* %2
|
store i32 %b, i32* %2
|
||||||
ret void
|
ret void
|
||||||
|
Loading…
Reference in New Issue
Block a user