OSDN Git Service

[XRay] Set hasSideEffects flag of PATCHABLE_FUNCTION_{ENTER,EXIT}
authorFangrui Song <maskray@google.com>
Sun, 19 Jan 2020 06:36:33 +0000 (22:36 -0800)
committerFangrui Song <maskray@google.com>
Sun, 19 Jan 2020 08:09:46 +0000 (00:09 -0800)
Otherwise they may be picked as the delay slot by mips-delay-slot-filler, if we move patchable-function before mips-delay-slot-filler.

llvm/include/llvm/Target/Target.td

index b122b51..cdc9b64 100644 (file)
@@ -1182,7 +1182,7 @@ def PATCHABLE_FUNCTION_ENTER : StandardPseudoInstruction {
   let InOperandList = (ins);
   let AsmString = "# XRay Function Enter.";
   let usesCustomInserter = 1;
-  let hasSideEffects = 0;
+  let hasSideEffects = 1;
 }
 def PATCHABLE_RET : StandardPseudoInstruction {
   let OutOperandList = (outs);
@@ -1198,7 +1198,7 @@ def PATCHABLE_FUNCTION_EXIT : StandardPseudoInstruction {
   let InOperandList = (ins);
   let AsmString = "# XRay Function Exit.";
   let usesCustomInserter = 1;
-  let hasSideEffects = 0; // FIXME: is this correct?
+  let hasSideEffects = 1;
   let isReturn = 0; // Original return instruction will follow
 }
 def PATCHABLE_TAIL_CALL : StandardPseudoInstruction {