Skip to content

Commit 43e9ee3

Browse files
committed
Partially debug null type issue
1 parent 853151d commit 43e9ee3

15 files changed

+36
-2
lines changed

src/aotcompile.cpp

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@
3434
#include <llvm/Transforms/Utils/SimplifyCFGOptions.h>
3535
#include <llvm/Passes/PassBuilder.h>
3636
#include <llvm/Passes/PassPlugin.h>
37+
#include <llvm/Passes/StandardInstrumentations.h>
3738
#if defined(USE_POLLY)
3839
#include <polly/RegisterPasses.h>
3940
#include <polly/LinkAllPasses.h>
@@ -1216,7 +1217,10 @@ void addPipeline(ModulePassManager &MPM, int opt_level, bool lower_intrinsics, b
12161217
void optimizeModule(Module &M, TargetMachine *TM, int opt_level, bool lower_intrinsics, bool dump_native)
12171218
{
12181219
// llvm::PassBuilder pb(targetMachine->LLVM, llvm::PipelineTuningOptions(), llvm::None, &passInstrumentationCallbacks);
1219-
PassBuilder PB;
1220+
PassInstrumentationCallbacks PIC;
1221+
StandardInstrumentations SI(false);
1222+
SI.registerCallbacks(PIC);
1223+
PassBuilder PB(TM, PipelineTuningOptions(), None, &PIC);
12201224
// Create the analysis managers.
12211225
LoopAnalysisManager LAM;
12221226
PB.registerLoopAnalyses(LAM);

src/llvm-alloc-opt.cpp

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020
#include <llvm/IR/Module.h>
2121
#include <llvm/IR/Operator.h>
2222
#include <llvm/IR/IRBuilder.h>
23+
#include <llvm/IR/Verifier.h>
2324
#include <llvm/Pass.h>
2425
#include <llvm/Support/Debug.h>
2526
#include <llvm/Transforms/Utils/PromoteMemToReg.h>
@@ -1148,7 +1149,9 @@ bool AllocOpt::runOnFunction(Function &F, function_ref<DominatorTree&()> GetDT)
11481149
Optimizer optimizer(F, *this, std::move(GetDT));
11491150
optimizer.initialize();
11501151
optimizer.optimizeAll();
1151-
return optimizer.finalize();
1152+
auto changed = optimizer.finalize();
1153+
assert(!verifyFunction(F));
1154+
return changed;
11521155
}
11531156

11541157
struct AllocOptLegacy : public FunctionPass {

src/llvm-cpufeatures.cpp

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@
2121
#include <llvm/IR/Instructions.h>
2222
#include <llvm/IR/PassManager.h>
2323
#include <llvm/IR/LegacyPassManager.h>
24+
#include <llvm/IR/Verifier.h>
2425
#include <llvm/Target/TargetMachine.h>
2526
#include <llvm/Support/Debug.h>
2627

@@ -104,6 +105,7 @@ bool lowerCPUFeatures(Module &M)
104105
for (auto I: Materialized) {
105106
I->eraseFromParent();
106107
}
108+
assert(!verifyModule(M));
107109
return true;
108110
} else {
109111
return false;

src/llvm-demote-float16.cpp

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@
2424
#include <llvm/IR/LegacyPassManager.h>
2525
#include <llvm/IR/PassManager.h>
2626
#include <llvm/IR/Module.h>
27+
#include <llvm/IR/Verifier.h>
2728
#include <llvm/Support/Debug.h>
2829

2930
using namespace llvm;
@@ -121,6 +122,7 @@ static bool demoteFloat16(Function &F)
121122
if (erase.size() > 0) {
122123
for (auto V : erase)
123124
V->eraseFromParent();
125+
assert(!verifyFunction(F));
124126
return true;
125127
}
126128
else

src/llvm-final-gc-lowering.cpp

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
#include <llvm/IR/IntrinsicInst.h>
99
#include <llvm/IR/Module.h>
1010
#include <llvm/IR/IRBuilder.h>
11+
#include <llvm/IR/Verifier.h>
1112
#include <llvm/Pass.h>
1213
#include <llvm/Support/Debug.h>
1314
#include <llvm/Transforms/Utils/ModuleUtils.h>
@@ -211,6 +212,7 @@ bool FinalLowerGC::doInitialization(Module &M) {
211212
}
212213
if (j != 0)
213214
appendToCompilerUsed(M, ArrayRef<GlobalValue*>(functionList, j));
215+
assert(!verifyModule(M));
214216
return true;
215217
}
216218

@@ -244,6 +246,7 @@ bool FinalLowerGC::doFinalization(Module &M)
244246
used = new GlobalVariable(M, ATy, false, GlobalValue::AppendingLinkage,
245247
ConstantArray::get(ATy, init), "llvm.compiler.used");
246248
used->setSection("llvm.metadata");
249+
assert(!verifyModule(M));
247250
return true;
248251
}
249252

@@ -320,6 +323,8 @@ bool FinalLowerGC::runOnFunction(Function &F)
320323
}
321324
}
322325

326+
assert(!verifyFunction(F));
327+
323328
return true;
324329
}
325330

src/llvm-julia-licm.cpp

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
#include "llvm/Analysis/LoopIterator.h"
99
#include <llvm/IR/Dominators.h>
1010
#include <llvm/IR/LegacyPassManager.h>
11+
#include <llvm/IR/Verifier.h>
1112
#include <llvm/Transforms/Utils/LoopUtils.h>
1213
#include <llvm/Analysis/ValueTracking.h>
1314

@@ -174,6 +175,7 @@ struct JuliaLICM : public JuliaPassContext {
174175
}
175176
}
176177
}
178+
assert(!verifyFunction(*L->getBlocks()[0]->getParent()));
177179
return changed;
178180
}
179181
};

src/llvm-late-gc-lowering.cpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2699,6 +2699,7 @@ bool LateLowerGCFrame::runOnFunction(Function &F, bool *CFGModified) {
26992699
std::map<Value *, std::pair<int, int>> CallFrames; // = OptimizeCallFrames(S, Ordering);
27002700
PlaceRootsAndUpdateCalls(Colors, S, CallFrames);
27012701
CleanupIR(F, &S, CFGModified);
2702+
assert(!verifyFunction(F));
27022703
return true;
27032704
}
27042705

src/llvm-lower-handlers.cpp

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
#include <llvm/IR/Module.h>
1717
#include <llvm/IR/Value.h>
1818
#include <llvm/IR/LegacyPassManager.h>
19+
#include <llvm/IR/Verifier.h>
1920
#include <llvm/Pass.h>
2021
#include <llvm/Support/Debug.h>
2122
#include <llvm/Transforms/Utils/BasicBlockUtils.h>
@@ -215,6 +216,7 @@ static bool lowerExcHandlers(Function &F) {
215216
LifetimeEnd->insertAfter(it.first);
216217
}
217218
}
219+
assert(!verifyFunction(F));
218220
return true;
219221
}
220222

src/llvm-muladd.cpp

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
#include <llvm/IR/Module.h>
1818
#include <llvm/IR/Operator.h>
1919
#include <llvm/IR/IRBuilder.h>
20+
#include <llvm/IR/Verifier.h>
2021
#include <llvm/Pass.h>
2122
#include <llvm/Support/Debug.h>
2223

@@ -80,6 +81,7 @@ static bool combineMulAdd(Function &F)
8081
}
8182
}
8283
}
84+
assert(!verifyFunction(F));
8385
return true;
8486
}
8587

src/llvm-multiversioning.cpp

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@
2424
#include <llvm/IR/LegacyPassManager.h>
2525
#include <llvm/IR/IRBuilder.h>
2626
#include <llvm/IR/DebugInfoMetadata.h>
27+
#include <llvm/IR/Verifier.h>
2728
#include <llvm/Transforms/Utils/Cloning.h>
2829

2930
#include "julia.h"
@@ -1105,6 +1106,7 @@ static bool runMultiVersioning(Module &M, function_ref<LoopInfo&(Function&)> Get
11051106
// and collected all the shared/target-specific relocations.
11061107
clone.emit_metadata();
11071108

1109+
assert(!verifyModule(M));
11081110
return true;
11091111
}
11101112

src/llvm-propagate-addrspaces.cpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -295,6 +295,7 @@ bool propagateJuliaAddrspaces(Function &F) {
295295
visitor.ToDelete.clear();
296296
visitor.LiftingMap.clear();
297297
visitor.Visited.clear();
298+
assert(!verifyFunction(F));
298299
return true;
299300
}
300301

src/llvm-ptls.cpp

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020
#include <llvm/IR/Constants.h>
2121
#include <llvm/IR/LLVMContext.h>
2222
#include <llvm/IR/MDBuilder.h>
23+
#include <llvm/IR/Verifier.h>
2324

2425
#include <llvm/IR/InlineAsm.h>
2526
#include <llvm/Transforms/Utils/BasicBlockUtils.h>
@@ -281,6 +282,7 @@ bool LowerPTLS::runOnModule(Module &_M, bool *CFGModified)
281282
}
282283
assert(pgcstack_getter->use_empty());
283284
pgcstack_getter->eraseFromParent();
285+
assert(!verifyModule(_M));
284286
return true;
285287
}
286288

src/llvm-remove-addrspaces.cpp

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
#include <llvm/IR/Instructions.h>
99
#include <llvm/IR/InstIterator.h>
1010
#include <llvm/IR/LegacyPassManager.h>
11+
#include <llvm/IR/Verifier.h>
1112
#include <llvm/Support/Debug.h>
1213
#include <llvm/Transforms/Utils/Cloning.h>
1314
#include <llvm/Transforms/Utils/ValueMapper.h>
@@ -453,6 +454,7 @@ bool removeAddrspaces(Module &M, AddrspaceRemapFunction ASRemapper)
453454
}
454455
}
455456

457+
assert(!verifyModule(M));
456458
return true;
457459
}
458460

src/llvm-remove-ni.cpp

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
#include <llvm/IR/Module.h>
88
#include <llvm/IR/PassManager.h>
99
#include <llvm/IR/LegacyPassManager.h>
10+
#include <llvm/IR/Verifier.h>
1011
#include <llvm/Support/Debug.h>
1112

1213
#include "julia.h"
@@ -32,6 +33,7 @@ static bool removeNI(Module &M)
3233
}
3334
dlstr.erase(nistart, niend - nistart);
3435
M.setDataLayout(dlstr);
36+
assert(!verifyModule(M));
3537
return true;
3638
}
3739
}

src/llvm-simdloop.cpp

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@
2525
#include <llvm/IR/Instructions.h>
2626
#include <llvm/IR/LLVMContext.h>
2727
#include <llvm/IR/Metadata.h>
28+
#include <llvm/IR/Verifier.h>
2829
#include <llvm/Support/Debug.h>
2930

3031
#include "julia_assert.h"
@@ -205,6 +206,7 @@ static bool markLoopInfo(Module &M, Function *marker, function_ref<LoopInfo &(Fu
205206
I->deleteValue();
206207
marker->eraseFromParent();
207208

209+
assert(!verifyModule(M));
208210
return Changed;
209211
}
210212

0 commit comments

Comments
 (0)