mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-11-23 19:23:23 +01:00
453ec55b92
Some IRBuilder methods that were originally defined on IRBuilderBase do not respect custom IRBuilder inserters/folders, because those were not accessible prior to D73835. Fix this by making use of existing (and now accessible) IRBuilder methods, which will handle inserters/folders correctly. There are some changes in OpenMP and Instrumentation tests, where bitcasts now get constant folded. I've also highlighted one InstCombine test which now finishes in two rather than three iterations, thanks to new instructions being inserted into the worklist. Differential Revision: https://reviews.llvm.org/D74787
22 lines
787 B
LLVM
22 lines
787 B
LLVM
; Test that copy alignment for byval arguments is limited by param-tls slot alignment.
|
|
|
|
; RUN: opt < %s -msan-check-access-address=0 -S -passes=msan 2>&1 | FileCheck \
|
|
; RUN: %s
|
|
; RUN: opt < %s -msan -msan-check-access-address=0 -S | FileCheck %s
|
|
|
|
target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128"
|
|
target triple = "x86_64-unknown-linux-gnu"
|
|
|
|
%struct.S = type { i64, i64, i64, [8 x i8] }
|
|
|
|
; CHECK: call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 {{.*}} add {{.*}} ptrtoint {{.*}} @__msan_param_tls {{.*}} i64 8) {{.*}}, i8* align 8 {{.*}}, i64 32, i1 false)
|
|
|
|
define void @Caller() sanitize_memory {
|
|
entry:
|
|
%agg.tmp = alloca %struct.S, align 16
|
|
call void @Callee(i32 1, %struct.S* byval align 16 %agg.tmp)
|
|
ret void
|
|
}
|
|
|
|
declare void @Callee(i32, %struct.S* byval align 16)
|