Index: lib/Target/AMDGPU/AMDGPUTargetMachine.cpp =================================================================== --- lib/Target/AMDGPU/AMDGPUTargetMachine.cpp +++ lib/Target/AMDGPU/AMDGPUTargetMachine.cpp @@ -360,17 +360,6 @@ Builder.Inliner = createAMDGPUFunctionInliningPass(); } - if (Internalize) { - // If we're generating code, we always have the whole program available. The - // relocations expected for externally visible functions aren't supported, - // so make sure every non-entry function is hidden. - Builder.addExtension( - PassManagerBuilder::EP_EnabledOnOptLevel0, - [](const PassManagerBuilder &, legacy::PassManagerBase &PM) { - PM.add(createInternalizePass(mustPreserveGV)); - }); - } - Builder.addExtension( PassManagerBuilder::EP_ModuleOptimizerEarly, [Internalize, EarlyInline, AMDGPUAA](const PassManagerBuilder &, Index: test/CodeGen/AMDGPU/internalize.ll =================================================================== --- test/CodeGen/AMDGPU/internalize.ll +++ test/CodeGen/AMDGPU/internalize.ll @@ -8,14 +8,15 @@ ; ALL: gvar_used @gvar_used = addrspace(1) global i32 undef, align 4 -; ALL: define internal fastcc void @func_used_noinline( +; OPT: define internal fastcc void @func_used_noinline( +; OPT-NONE: define fastcc void @func_used_noinline( define fastcc void @func_used_noinline(i32 addrspace(1)* %out, i32 %tid) #1 { entry: store volatile i32 %tid, i32 addrspace(1)* %out ret void } -; OPTNONE: define internal fastcc void @func_used_alwaysinline( +; OPTNONE: define fastcc void @func_used_alwaysinline( ; OPT-NOT: @func_used_alwaysinline define fastcc void @func_used_alwaysinline(i32 addrspace(1)* %out, i32 %tid) #2 { entry: @@ -23,7 +24,7 @@ ret void } -; OPTNONE: define internal void @func_unused( +; OPTNONE: define void @func_unused( ; OPT-NOT: @func_unused define void @func_unused(i32 addrspace(1)* %out, i32 %tid) #1 { entry: