summaryrefslogtreecommitdiffstats
path: root/llvm/lib/CodeGen/SelectionDAG/FastISel.cpp
diff options
context:
space:
mode:
authorDean Michael Berris <dberris@google.com>2018-02-01 02:21:54 +0000
committerDean Michael Berris <dberris@google.com>2018-02-01 02:21:54 +0000
commitcdca0730be2af252d1498b752d489bdcbb054681 (patch)
tree6d5411b6d6a3709cd12f6b85aa779b55aac2f597 /llvm/lib/CodeGen/SelectionDAG/FastISel.cpp
parent32b615c2a1c311967f97ad65b7d0153fac719d36 (diff)
downloadbcm5719-llvm-cdca0730be2af252d1498b752d489bdcbb054681.tar.gz
bcm5719-llvm-cdca0730be2af252d1498b752d489bdcbb054681.zip
[XRay][compiler-rt+llvm] Update XRay register stashing semantics
Summary: This change expands the amount of registers stashed by the entry and `__xray_CustomEvent` trampolines. We've found that since the `__xray_CustomEvent` trampoline calls can show up in situations where the scratch registers are being used, and since we don't typically want to affect the code-gen around the disabled `__xray_customevent(...)` intrinsic calls, that we need to save and restore the state of even the scratch registers in the handling of these custom events. Reviewers: pcc, pelikan, dblaikie, eizan, kpw, echristo, chandlerc Reviewed By: echristo Subscribers: chandlerc, echristo, hiraditya, davide, dblaikie, llvm-commits Differential Revision: https://reviews.llvm.org/D40894 llvm-svn: 323940
Diffstat (limited to 'llvm/lib/CodeGen/SelectionDAG/FastISel.cpp')
-rw-r--r--llvm/lib/CodeGen/SelectionDAG/FastISel.cpp1
1 files changed, 1 insertions, 0 deletions
diff --git a/llvm/lib/CodeGen/SelectionDAG/FastISel.cpp b/llvm/lib/CodeGen/SelectionDAG/FastISel.cpp
index 3c856914053..bc961386e6d 100644
--- a/llvm/lib/CodeGen/SelectionDAG/FastISel.cpp
+++ b/llvm/lib/CodeGen/SelectionDAG/FastISel.cpp
@@ -874,6 +874,7 @@ bool FastISel::selectXRayCustomEvent(const CallInst *I) {
TII.get(TargetOpcode::PATCHABLE_EVENT_CALL));
for (auto &MO : Ops)
MIB.add(MO);
+
// Insert the Patchable Event Call instruction, that gets lowered properly.
return true;
}
OpenPOWER on IntegriCloud