Home
last modified time | relevance | path

Searched refs:TRE (Results 1 – 13 of 13) sorted by relevance

/llvm-project-15.0.7/llvm/test/Transforms/TailCallElim/
H A Dtre-multiple-exits.ll4 ; This test checks that TRE would be done for only one recursive call.
9 ; this is not last call. Thus, test checks that TRE would be done
19 ; // TRE could not be done because pointer to local
23 ; // TRE should be done.
26 ; // TRE could not be done since recursive
H A Dtre-noncapturing-alloca-calls.ll23 ; Test that TRE could be done for recursive tail routine containing
H A Dbasic.ll15 ; Make sure that we do not do TRE if pointer to local stack
87 ; Make sure that we do not perform TRE even with a nocapture use. This is due to
H A Dtre-byval-parameter.ll12 ; // After TRE: temporarily variable created for passing byvalue parameter
/llvm-project-15.0.7/llvm/lib/Transforms/Scalar/
H A DTailRecursionElimination.cpp859 TailRecursionEliminator TRE(F, TTI, AA, ORE, DTU); in eliminate() local
862 MadeChange |= TRE.processBlock(BB); in eliminate()
864 TRE.cleanupAndFinalize(); in eliminate()
/llvm-project-15.0.7/llvm/docs/
H A DPasses.rst1130 #. TRE is performed if the function returns void, if the return returns the
1133 return returns something else (like constant 0), and can still be TRE'd. It
1134 can be TRE'd if *all other* return instructions in the function return the
/llvm-project-15.0.7/llvm/lib/Target/SystemZ/
H A DSystemZScheduleZ196.td593 def : InstRW<[WLat30, WLat30, MCD], (instregex "TRE$")>;
H A DSystemZScheduleZEC12.td606 def : InstRW<[WLat30, WLat30, MCD], (instregex "TRE$")>;
H A DSystemZScheduleZ13.td635 def : InstRW<[WLat30, WLat30, MCD], (instregex "TRE$")>;
H A DSystemZScheduleZ16.td659 def : InstRW<[WLat30, WLat30, MCD], (instregex "TRE$")>;
H A DSystemZScheduleZ15.td659 def : InstRW<[WLat30, WLat30, MCD], (instregex "TRE$")>;
H A DSystemZScheduleZ14.td645 def : InstRW<[WLat30, WLat30, MCD], (instregex "TRE$")>;
H A DSystemZInstrInfo.td1906 def TRE : SideEffectBinaryMemMemRRE<"tre", 0xB2A5, GR128, GR64>;