Buggy code:
public class X86Level2Compiler extends AbstractX86Compiler { public static boolean canCompile ( VmMethod method ) { } public void compileRuntime ( VmMethod method , ObjectResolver resolver , int level , NativeStream os ) { } public NativeStream createNativeStream ( ObjectResolver resolver ) { } public static LiveRange < ? > [ ] getLiveRanges ( List < Variable < ? > > liveVariables ) { } public static LinearScanAllocator allocate ( LiveRange [ ] liveRanges ) { } public static void generateCode ( CodeGenerator cg , IRControlFlowGraph cfg , IRGenerator irg , LinearScanAllocator lsa ) { } @ Override protected CompilerBytecodeVisitor createBytecodeVisitor ( VmMethod method , CompiledMethod cm , NativeStream os , int level , boolean isBootstrap ) { } @ Override public int getMagic ( ) { } @ Override public String getName ( ) { } @ Override public GCMapIterator createGCMapIterator ( ) { } @ Override public String [ ] getCompilerPackages ( ) { } @ Override protected CompiledMethod doCompile ( VmMethod method , NativeStream os , int level , boolean isBootstrap ) { final CompiledMethod cm = new CompiledMethod ( level ) ; try { if ( method . isNative ( ) ) { Object label = new org . jnode . assembler . Label ( method . getMangledName ( ) ) ; cm . setCodeStart ( os . getObjectRef ( label ) ) ; } else { EntryPoints entryPoints = getEntryPoints ( ) ; X86CompilerHelper helper = new X86CompilerHelper ( ( ( X86Assembler ) ( os ) ) , null , entryPoints , isBootstrap ) ; helper . setMethod ( method ) ; X86StackFrame stackFrame = new X86StackFrame ( ( ( X86Assembler ) ( os ) ) , helper , method , entryPoints , cm ) ; TypeSizeInfo typeSizeInfo = getTypeSizeInfo ( ) ; VmByteCode bytecode = method . getBytecode ( ) ; IRControlFlowGraph cfg = new IRControlFlowGraph ( bytecode ) ; <START_BUG> IRGenerator irg = new IRGenerator ( cfg , typeSizeInfo ) ; <END_BUG> BytecodeParser . parse ( bytecode , irg ) ; X86Level2Compiler . initMethodArguments ( method , stackFrame , typeSizeInfo , irg ) ; cfg . constructSSA ( ) ; cfg . optimize ( ) ; cfg . removeUnusedVars ( ) ; cfg . deconstrucSSA ( ) ; cfg . removeDefUseChains ( ) ; cfg . fixupAddresses ( ) ; X86CodeGenerator x86cg = new X86CodeGenerator ( method , ( ( X86Assembler ) ( os ) ) , bytecode . getLength ( ) , typeSizeInfo , stackFrame ) ; List < Variable < ? > > liveVariables = cfg . computeLiveVariables ( ) ; LiveRange < ? > [ ] liveRanges = X86Level2Compiler . getLiveRanges ( liveVariables ) ; LinearScanAllocator < ? > lsa = X86Level2Compiler . allocate ( liveRanges ) ; X86Level2Compiler . generateCode ( x86cg , cfg , irg , lsa ) ; } } catch ( RuntimeException x ) { System . err . println ( ( "ERROR<seq2seq4repair_space>in<seq2seq4repair_space>compilation<seq2seq4repair_space>of<seq2seq4repair_space>" + ( method . getFullName ( ) ) ) ) ; throw x ; } catch ( Error x ) { System . err . println ( ( "ERROR<seq2seq4repair_space>in<seq2seq4repair_space>compilation<seq2seq4repair_space>of<seq2seq4repair_space>" + ( method . getFullName ( ) ) ) ) ; throw x ; } return cm ; } public static void initMethodArguments ( VmMethod method , X86StackFrame stackFrame , TypeSizeInfo typeSizeInfo , IRGenerator irg ) { } }

Fix:
IRGenerator irg = new IRGenerator ( cfg , typeSizeInfo , method . getDeclaringClass ( ) . getLoader ( ) ) ;