Skip to content

Commit 708e131

Browse files
authored
[LLVM Pulldown] Bump to LLVM rev 81ad8fbc2bb09bae61ed59316468011e4a42cf47 (#1126)
1 parent 0069c12 commit 708e131

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

46 files changed

+759
-781
lines changed

build_tools/llvm_version.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
a3557c3abde66c7001f12f6fec7a13885574e55a
1+
81ad8fbc2bb09bae61ed59316468011e4a42cf47

build_tools/patches/0006-Add-SPIRV_ExecutionModeAttributesAttr.patch

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,7 @@ index d7885e035959..5195035f088f 100644
7171
+ OpBuilder::InsertionGuard guard(rewriter);
7272
+ rewriter.setInsertionPointAfter(newFuncOp);
7373
+
74-
+ rewriter.create<spirv::ExecutionModeOp>(funcOp.getLoc(), newFuncOp,
74+
+ spirv::ExecutionModeOp::create(rewriter, funcOp.getLoc(), newFuncOp,
7575
+ executionMode.getValue(), *modeVal);
7676
+ }
7777
+

build_tools/patches/fa_support.patch

Lines changed: 0 additions & 52 deletions
This file was deleted.

include/imex/Utils/ArithUtils.h

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -44,9 +44,10 @@ template <typename T> struct EasyVal {
4444
const ::mlir::OpFoldResult &value)
4545
: _value(llvm::isa<::mlir::Value>(value)
4646
? llvm::cast<::mlir::Value>(value)
47-
: builder.create<::mlir::arith::ConstantOp>(
48-
*_loc, ::mlir::cast<::mlir::IntegerAttr>(
49-
llvm::cast<::mlir::Attribute>(value)))),
47+
: ::mlir::arith::ConstantOp::create(
48+
builder, *_loc,
49+
::mlir::cast<::mlir::IntegerAttr>(
50+
llvm::cast<::mlir::Attribute>(value)))),
5051
_loc(&loc), _builder(&builder) {}
5152

5253
/// Create Value from C++ value

include/imex/Utils/PassUtils.h

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ template <typename T>
4242
::mlir::Value createFloat(const ::mlir::Location &loc,
4343
::mlir::OpBuilder &builder, T val, int W = 64) {
4444
auto attr = getFloatAttr(builder, val, W);
45-
return builder.create<::mlir::arith::ConstantOp>(loc, attr);
45+
return ::mlir::arith::ConstantOp::create(builder, loc, attr);
4646
}
4747

4848
/// @return get ::mlir::IntegerAttr with given Value and bitwidth W
@@ -56,7 +56,7 @@ inline ::mlir::Value createInt(const ::mlir::Location &loc,
5656
::mlir::OpBuilder &builder, int64_t val,
5757
int W = 64) {
5858
auto attr = getIntAttr(builder, val, W);
59-
return builder.create<::mlir::arith::ConstantOp>(loc, attr);
59+
return ::mlir::arith::ConstantOp::create(builder, loc, attr);
6060
}
6161

6262
/// @return new index ::mlir::Value with given Value
@@ -204,7 +204,7 @@ extern ::mlir::Value createExtractPtrFromMemRef(::mlir::OpBuilder &builder,
204204
auto off = easyIdx(loc, builder, meta.getOffset());
205205
auto aptr = easyIdx(
206206
loc, builder,
207-
builder.create<::mlir::memref::ExtractAlignedPointerAsIndexOp>(loc, mr));
207+
::mlir::memref::ExtractAlignedPointerAsIndexOp::create(builder, loc, mr));
208208
return (aptr + (off * easyIdx(loc, builder, sizeof(uint64_t)))).get();
209209
}
210210

include/imex/Utils/VCUtils.h

Lines changed: 13 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -35,35 +35,36 @@ using namespace mlir;
3535
#define vecTy(n, ty) VectorType::get(n, ty)
3636

3737
#define i1_val(value) \
38-
rewriter.create<arith::ConstantOp>(loc, rewriter.getBoolAttr(value))
38+
arith::ConstantOp::create(rewriter, loc, rewriter.getBoolAttr(value))
3939

4040
#define i8_val(value) \
41-
rewriter.create<arith::ConstantOp>(loc, rewriter.getI8IntegerAttr(value))
41+
arith::ConstantOp::create(rewriter, loc, rewriter.getI8IntegerAttr(value))
4242

4343
#define i16_val(value) \
44-
rewriter.create<arith::ConstantOp>(loc, rewriter.getI16IntegerAttr(value))
44+
arith::ConstantOp::create(rewriter, loc, rewriter.getI16IntegerAttr(value))
4545

4646
#define i32_val(value) \
47-
rewriter.create<arith::ConstantOp>(loc, rewriter.getI32IntegerAttr(value))
47+
arith::ConstantOp::create(rewriter, loc, rewriter.getI32IntegerAttr(value))
4848

4949
#define i64_val(value) \
50-
rewriter.create<arith::ConstantOp>(loc, rewriter.getI64IntegerAttr(value))
50+
arith::ConstantOp::create(rewriter, loc, rewriter.getI64IntegerAttr(value))
5151

5252
#define index_val(value) \
53-
rewriter.create<arith::ConstantOp>(loc, rewriter.getIndexAttr(value))
53+
arith::ConstantOp::create(rewriter, loc, rewriter.getIndexAttr(value))
5454

55-
#define constant_val(attr) rewriter.create<arith::ConstantOp>(loc, attr)
55+
#define constant_val(attr) arith::ConstantOp::create(rewriter, loc, attr)
5656

5757
#define integer_val(value, type) \
58-
rewriter.create<arith::ConstantOp>(loc, rewriter.getIntegerAttr(type, value))
58+
arith::ConstantOp::create(rewriter, loc, rewriter.getIntegerAttr(type, value))
5959

6060
#define dense_vector_int_val(value, elemTy, vecSize) \
61-
rewriter.create<arith::ConstantOp>( \
62-
loc, DenseElementsAttr::get(vecTy(vecSize, elemTy), \
63-
IntegerAttr::get(elemTy, value)))
61+
arith::ConstantOp::create( \
62+
rewriter, loc, \
63+
DenseElementsAttr::get(vecTy(vecSize, elemTy), \
64+
IntegerAttr::get(elemTy, value)))
6465

6566
#define dense_vector_val(attr, vecTy) \
66-
rewriter.create<arith::ConstantOp>(loc, DenseElementsAttr::get(vecTy, attr))
67+
arith::ConstantOp::create(rewriter, loc, DenseElementsAttr::get(vecTy, attr))
6768

6869
#define divi(a, b) rewriter.createOrFold<arith::DivSIOp>(loc, a, b)
6970
#define muli(a, b) rewriter.createOrFold<arith::MulIOp>(loc, a, b)

lib/Conversion/ArithToVC/ArithToVC.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -153,8 +153,8 @@ struct ArithToVCPass : public imex::impl::ConvertArithToVCBase<ArithToVCPass> {
153153
!mlir::isa<mlir::VectorType>(inputs.front().getType()))
154154
return nullptr;
155155

156-
return builder.create<mlir::vector::ShapeCastOp>(loc, type,
157-
inputs.front());
156+
return mlir::vector::ShapeCastOp::create(builder, loc, type,
157+
inputs.front());
158158
};
159159
typeConverter.addSourceMaterialization(materializeCast);
160160
typeConverter.addTargetMaterialization(materializeCast);

lib/Conversion/ConvertToSPIRV/ConvertToSPIRVPass.cpp

Lines changed: 33 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -70,40 +70,41 @@ class VectorMaskConversionPattern final
7070

7171
auto vWidth = vTy.getNumElements();
7272
assert(vWidth <= 64 && "vector.create_mask supports vector widths <= 64");
73-
auto vWidthConst = rewriter.create<mlir::arith::ConstantOp>(
74-
vMaskOp.getLoc(), rewriter.getI64IntegerAttr(vWidth));
73+
auto vWidthConst = mlir::arith::ConstantOp::create(
74+
rewriter, vMaskOp.getLoc(), rewriter.getI64IntegerAttr(vWidth));
7575
auto maskVal = adaptor.getOperands()[0];
76-
maskVal = rewriter.create<mlir::arith::TruncIOp>(
77-
vMaskOp.getLoc(), rewriter.getI64Type(), maskVal);
76+
maskVal = mlir::arith::TruncIOp::create(rewriter, vMaskOp.getLoc(),
77+
rewriter.getI64Type(), maskVal);
7878

7979
// maskVal < vWidth
80-
auto cmp = rewriter.create<mlir::arith::CmpIOp>(
81-
vMaskOp.getLoc(), mlir::arith::CmpIPredicate::slt, maskVal,
82-
vWidthConst);
83-
auto one = rewriter.create<mlir::arith::ConstantOp>(
84-
vMaskOp.getLoc(), rewriter.getI64IntegerAttr(1));
85-
auto shift = rewriter.create<mlir::spirv::ShiftLeftLogicalOp>(
86-
vMaskOp.getLoc(), one, maskVal);
80+
auto cmp = mlir::arith::CmpIOp::create(rewriter, vMaskOp.getLoc(),
81+
mlir::arith::CmpIPredicate::slt,
82+
maskVal, vWidthConst);
83+
auto one = mlir::arith::ConstantOp::create(rewriter, vMaskOp.getLoc(),
84+
rewriter.getI64IntegerAttr(1));
85+
auto shift = mlir::spirv::ShiftLeftLogicalOp::create(
86+
rewriter, vMaskOp.getLoc(), one, maskVal);
8787
auto mask1 =
88-
rewriter.create<mlir::arith::SubIOp>(vMaskOp.getLoc(), shift, one);
89-
auto mask2 = rewriter.create<mlir::arith::ConstantOp>(
90-
vMaskOp.getLoc(), rewriter.getI64IntegerAttr(-1)); // all ones
91-
mlir::Value sel = rewriter.create<mlir::arith::SelectOp>(vMaskOp.getLoc(),
92-
cmp, mask1, mask2);
88+
mlir::arith::SubIOp::create(rewriter, vMaskOp.getLoc(), shift, one);
89+
auto mask2 = mlir::arith::ConstantOp::create(
90+
rewriter, vMaskOp.getLoc(), rewriter.getI64IntegerAttr(-1)); // all ones
91+
mlir::Value sel = mlir::arith::SelectOp::create(rewriter, vMaskOp.getLoc(),
92+
cmp, mask1, mask2);
9393

9494
// maskVal < 0
95-
auto zero = rewriter.create<mlir::arith::ConstantOp>(
96-
vMaskOp.getLoc(), rewriter.getI64IntegerAttr(0));
97-
auto cmp2 = rewriter.create<mlir::arith::CmpIOp>(
98-
vMaskOp.getLoc(), mlir::arith::CmpIPredicate::slt, maskVal, zero);
99-
sel = rewriter.create<mlir::arith::SelectOp>(vMaskOp.getLoc(), cmp2, zero,
100-
sel);
101-
102-
sel = rewriter.create<mlir::arith::TruncIOp>(
103-
vMaskOp.getLoc(), rewriter.getIntegerType(vWidth), sel);
104-
auto res = rewriter.create<mlir::spirv::BitcastOp>(
105-
vMaskOp.getLoc(), mlir::VectorType::get({vWidth}, rewriter.getI1Type()),
106-
sel);
95+
auto zero = mlir::arith::ConstantOp::create(rewriter, vMaskOp.getLoc(),
96+
rewriter.getI64IntegerAttr(0));
97+
auto cmp2 = mlir::arith::CmpIOp::create(rewriter, vMaskOp.getLoc(),
98+
mlir::arith::CmpIPredicate::slt,
99+
maskVal, zero);
100+
sel = mlir::arith::SelectOp::create(rewriter, vMaskOp.getLoc(), cmp2, zero,
101+
sel);
102+
103+
sel = mlir::arith::TruncIOp::create(rewriter, vMaskOp.getLoc(),
104+
rewriter.getIntegerType(vWidth), sel);
105+
auto res = mlir::spirv::BitcastOp::create(
106+
rewriter, vMaskOp.getLoc(),
107+
mlir::VectorType::get({vWidth}, rewriter.getI1Type()), sel);
107108
vMaskOp->replaceAllUsesWith(res);
108109
rewriter.eraseOp(vMaskOp);
109110
return mlir::success();
@@ -136,10 +137,11 @@ class VectorFromElementsConversionPattern final
136137
}
137138

138139
auto loc = fromElementsOp.getLoc();
139-
mlir::Value result = rewriter.create<mlir::spirv::UndefOp>(loc, spirvVecTy);
140+
mlir::Value result =
141+
mlir::spirv::UndefOp::create(rewriter, loc, spirvVecTy);
140142
for (auto [idx, val] : llvm::enumerate(adaptor.getElements())) {
141-
result = rewriter.create<mlir::spirv::CompositeInsertOp>(loc, val, result,
142-
idx);
143+
result = mlir::spirv::CompositeInsertOp::create(rewriter, loc, val,
144+
result, idx);
143145
}
144146
rewriter.replaceOp(fromElementsOp, result);
145147
return mlir::success();

lib/Conversion/GPUToGPUX/GPUToGPUX.cpp

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -50,12 +50,11 @@ static mlir::Value getGpuStream(mlir::OpBuilder &builder, mlir::Operation *op) {
5050
mlir::OpBuilder::InsertionGuard g(builder);
5151
builder.setInsertionPointToStart(&block);
5252
auto loc = builder.getUnknownLoc();
53-
auto stream =
54-
builder
55-
.create<imex::gpux::CreateStreamOp>(loc, mlir::Value{}, mlir::Value{})
56-
.getResult();
53+
auto stream = imex::gpux::CreateStreamOp::create(builder, loc, mlir::Value{},
54+
mlir::Value{})
55+
.getResult();
5756
builder.setInsertionPoint(block.getTerminator());
58-
builder.create<imex::gpux::DestroyStreamOp>(loc, stream);
57+
imex::gpux::DestroyStreamOp::create(builder, loc, stream);
5958
return stream;
6059
}
6160

@@ -133,8 +132,8 @@ struct ConvertLaunchOp
133132

134133
auto loc = op.getLoc();
135134
mlir::Value asyncToken = op.getAsyncToken();
136-
auto gpux_launch_func = rewriter.create<imex::gpux::LaunchFuncOp>(
137-
loc, stream, gpuKernel, op.getGridSizeOperandValues(),
135+
auto gpux_launch_func = imex::gpux::LaunchFuncOp::create(
136+
rewriter, loc, stream, gpuKernel, op.getGridSizeOperandValues(),
138137
op.getBlockSizeOperandValues(), op.getDynamicSharedMemorySize(),
139138
op.getKernelOperands(), asyncToken ? asyncToken.getType() : nullptr,
140139
op.getAsyncDependencies());

0 commit comments

Comments
 (0)