Fixing LLVM CPU instrumentation. (#14939)
Broke as part of the #12653 integration.
diff --git a/compiler/src/iree/compiler/Codegen/LLVMCPU/ConvertToLLVM.cpp b/compiler/src/iree/compiler/Codegen/LLVMCPU/ConvertToLLVM.cpp
index 8aaf7a4..1fc7827 100644
--- a/compiler/src/iree/compiler/Codegen/LLVMCPU/ConvertToLLVM.cpp
+++ b/compiler/src/iree/compiler/Codegen/LLVMCPU/ConvertToLLVM.cpp
@@ -335,10 +335,10 @@
Value offsetIndex =
builder.create<LLVM::ConstantOp>(loc, i64Type, headOffset);
- Value offsetPtr = builder.create<LLVM::GEPOp>(
- loc, basePtr.getType(), LLVM::LLVMPointerType::get(builder.getContext()),
- basePtr, offsetIndex,
- /*inbounds=*/true);
+ auto i8Type = builder.getI8Type();
+ Value offsetPtr = builder.create<LLVM::GEPOp>(loc, basePtr.getType(), i8Type,
+ basePtr, offsetIndex,
+ /*inbounds=*/true);
Value rawOffset = builder.create<LLVM::AtomicRMWOp>(
loc, LLVM::AtomicBinOp::add, offsetPtr, entrySize,
LLVM::AtomicOrdering::monotonic);
@@ -346,9 +346,8 @@
builder.create<LLVM::ConstantOp>(loc, i64Type, ringSize - 1);
Value wrappedOffset = builder.create<LLVM::AndOp>(loc, rawOffset, offsetMask);
- Value entryPtr = builder.create<LLVM::GEPOp>(
- loc, basePtr.getType(), LLVM::LLVMPointerType::get(builder.getContext()),
- basePtr, wrappedOffset);
+ Value entryPtr = builder.create<LLVM::GEPOp>(loc, basePtr.getType(), i8Type,
+ basePtr, wrappedOffset);
return {basePtr, entryPtr, wrappedOffset};
}
diff --git a/tools/iree-dump-instruments-main.c b/tools/iree-dump-instruments-main.c
index 01d2da7..79300bc 100644
--- a/tools/iree-dump-instruments-main.c
+++ b/tools/iree-dump-instruments-main.c
@@ -255,6 +255,8 @@
}
int main(int argc, char** argv) {
+ IREE_TRACE_APP_ENTER();
+
if (argc < 2) {
fprintf(stderr,
"Syntax: iree-dump-instruments instruments.bin > instruments.txt\n"
@@ -274,7 +276,8 @@
" --instrument_file=instrument.bin\n"
" $ iree-dump-instruments instrument.bin\n"
"\n");
- return 1;
+ IREE_TRACE_APP_EXIT(EXIT_FAILURE);
+ return EXIT_FAILURE;
}
iree_file_contents_t* file_contents = NULL;
@@ -290,7 +293,9 @@
if (!iree_status_is_ok(status)) {
iree_status_fprint(stderr, status);
iree_status_free(status);
+ IREE_TRACE_APP_EXIT(EXIT_FAILURE);
return EXIT_FAILURE;
}
+ IREE_TRACE_APP_EXIT(EXIT_SUCCESS);
return EXIT_SUCCESS;
}