Skip to content

Commit

Permalink
Check that we don't name LLVM constants (#50263)
Browse files Browse the repository at this point in the history
  • Loading branch information
pchintalapudi authored Jun 22, 2023
1 parent a8d76c6 commit 7785db7
Showing 1 changed file with 11 additions and 8 deletions.
19 changes: 11 additions & 8 deletions src/codegen.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -169,7 +169,10 @@ typedef Instruction TerminatorInst;

void setName(jl_codegen_params_t &params, Value *V, const Twine &Name)
{
if (params.debug_level) {
// we do the constant check again later, duplicating it here just makes sure the assertion
// fires on debug builds even if debug info is not enabled
assert((isa<Constant>(V) || isa<Instruction>(V)) && "Should only set names on instructions!");
if (params.debug_level && !isa<Constant>(V)) {
V->setName(Name);
}
}
Expand Down Expand Up @@ -2354,17 +2357,17 @@ std::unique_ptr<Module> jl_create_llvm_module(StringRef name, LLVMContext &conte

static void jl_name_jlfunc_args(jl_codegen_params_t &params, Function *F) {
assert(F->arg_size() == 3);
setName(params, F->getArg(0), "function");
setName(params, F->getArg(1), "args");
setName(params, F->getArg(2), "nargs");
F->getArg(0)->setName("function");
F->getArg(1)->setName("args");
F->getArg(2)->setName("nargs");
}

static void jl_name_jlfuncparams_args(jl_codegen_params_t &params, Function *F) {
assert(F->arg_size() == 4);
setName(params, F->getArg(0), "function");
setName(params, F->getArg(1), "args");
setName(params, F->getArg(2), "nargs");
setName(params, F->getArg(3), "sparams");
F->getArg(0)->setName("function");
F->getArg(1)->setName("args");
F->getArg(2)->setName("nargs");
F->getArg(3)->setName("sparams");
}

static void jl_init_function(Function *F, const Triple &TT)
Expand Down

0 comments on commit 7785db7

Please sign in to comment.