Please use GitHub pull requests for new patches. Avoid migrating existing patches. Phabricator shutdown timeline
Changeset View
Changeset View
Standalone View
Standalone View
llvm/test/Transforms/Attributor/ArgumentPromotion/byval.ll
Show First 20 Lines • Show All 144 Lines • ▼ Show 20 Lines | |||||
; IS__TUNIT_NPM: Function Attrs: nofree nosync nounwind readnone willreturn | ; IS__TUNIT_NPM: Function Attrs: nofree nosync nounwind readnone willreturn | ||||
; IS__TUNIT_NPM-LABEL: define {{[^@]+}}@main | ; IS__TUNIT_NPM-LABEL: define {{[^@]+}}@main | ||||
; IS__TUNIT_NPM-SAME: () #[[ATTR0]] { | ; IS__TUNIT_NPM-SAME: () #[[ATTR0]] { | ||||
; IS__TUNIT_NPM-NEXT: entry: | ; IS__TUNIT_NPM-NEXT: entry: | ||||
; IS__TUNIT_NPM-NEXT: [[S:%.*]] = alloca [[STRUCT_SS:%.*]], align 4 | ; IS__TUNIT_NPM-NEXT: [[S:%.*]] = alloca [[STRUCT_SS:%.*]], align 4 | ||||
; IS__TUNIT_NPM-NEXT: [[TMP1:%.*]] = getelementptr [[STRUCT_SS]], %struct.ss* [[S]], i32 0, i32 0 | ; IS__TUNIT_NPM-NEXT: [[TMP1:%.*]] = getelementptr [[STRUCT_SS]], %struct.ss* [[S]], i32 0, i32 0 | ||||
; IS__TUNIT_NPM-NEXT: store i32 1, i32* [[TMP1]], align 8 | ; IS__TUNIT_NPM-NEXT: store i32 1, i32* [[TMP1]], align 8 | ||||
; IS__TUNIT_NPM-NEXT: [[TMP4:%.*]] = getelementptr [[STRUCT_SS]], %struct.ss* [[S]], i32 0, i32 1 | ; IS__TUNIT_NPM-NEXT: [[TMP4:%.*]] = getelementptr [[STRUCT_SS]], %struct.ss* [[S]], i32 0, i32 1 | ||||
; IS__TUNIT_NPM-NEXT: [[S_CAST:%.*]] = bitcast %struct.ss* [[S]] to i32* | |||||
; IS__TUNIT_NPM-NEXT: [[TMP0:%.*]] = load i32, i32* [[S_CAST]], align 8 | |||||
; IS__TUNIT_NPM-NEXT: [[S_0_1:%.*]] = getelementptr [[STRUCT_SS]], %struct.ss* [[S]], i32 0, i32 1 | |||||
; IS__TUNIT_NPM-NEXT: [[TMP1:%.*]] = load i64, i64* [[S_0_1]], align 8 | |||||
; IS__TUNIT_NPM-NEXT: [[C0:%.*]] = call i32 @f(i32 [[TMP0]], i64 [[TMP1]]) #[[ATTR0]] | |||||
; IS__TUNIT_NPM-NEXT: [[S_CAST1:%.*]] = bitcast %struct.ss* [[S]] to i32* | ; IS__TUNIT_NPM-NEXT: [[S_CAST1:%.*]] = bitcast %struct.ss* [[S]] to i32* | ||||
; IS__TUNIT_NPM-NEXT: [[TMP2:%.*]] = load i32, i32* [[S_CAST1]], align 32 | ; IS__TUNIT_NPM-NEXT: [[TMP0:%.*]] = load i32, i32* [[S_CAST1]], align 8 | ||||
; IS__TUNIT_NPM-NEXT: [[S_0_12:%.*]] = getelementptr [[STRUCT_SS]], %struct.ss* [[S]], i32 0, i32 1 | ; IS__TUNIT_NPM-NEXT: [[S_0_12:%.*]] = getelementptr [[STRUCT_SS]], %struct.ss* [[S]], i32 0, i32 1 | ||||
; IS__TUNIT_NPM-NEXT: [[TMP3:%.*]] = load i64, i64* [[S_0_12]], align 32 | ; IS__TUNIT_NPM-NEXT: [[TMP1:%.*]] = load i64, i64* [[S_0_12]], align 8 | ||||
; IS__TUNIT_NPM-NEXT: [[C0:%.*]] = call i32 @f(i32 [[TMP0]], i64 [[TMP1]]) #[[ATTR0]] | |||||
; IS__TUNIT_NPM-NEXT: [[S_CAST:%.*]] = bitcast %struct.ss* [[S]] to i32* | |||||
; IS__TUNIT_NPM-NEXT: [[TMP2:%.*]] = load i32, i32* [[S_CAST]], align 32 | |||||
; IS__TUNIT_NPM-NEXT: [[S_0_1:%.*]] = getelementptr [[STRUCT_SS]], %struct.ss* [[S]], i32 0, i32 1 | |||||
; IS__TUNIT_NPM-NEXT: [[TMP3:%.*]] = load i64, i64* [[S_0_1]], align 32 | |||||
; IS__TUNIT_NPM-NEXT: [[C1:%.*]] = call i32 @g(i32 [[TMP2]], i64 [[TMP3]]) #[[ATTR0]] | ; IS__TUNIT_NPM-NEXT: [[C1:%.*]] = call i32 @g(i32 [[TMP2]], i64 [[TMP3]]) #[[ATTR0]] | ||||
; IS__TUNIT_NPM-NEXT: [[A:%.*]] = add i32 [[C0]], [[C1]] | ; IS__TUNIT_NPM-NEXT: [[A:%.*]] = add i32 [[C0]], [[C1]] | ||||
; IS__TUNIT_NPM-NEXT: ret i32 [[A]] | ; IS__TUNIT_NPM-NEXT: ret i32 [[A]] | ||||
; | ; | ||||
; IS__CGSCC_OPM: Function Attrs: nofree norecurse nosync nounwind readnone willreturn | ; IS__CGSCC_OPM: Function Attrs: nofree norecurse nosync nounwind readnone willreturn | ||||
; IS__CGSCC_OPM-LABEL: define {{[^@]+}}@main | ; IS__CGSCC_OPM-LABEL: define {{[^@]+}}@main | ||||
; IS__CGSCC_OPM-SAME: () #[[ATTR0]] { | ; IS__CGSCC_OPM-SAME: () #[[ATTR0]] { | ||||
; IS__CGSCC_OPM-NEXT: entry: | ; IS__CGSCC_OPM-NEXT: entry: | ||||
Show All 40 Lines |