diff options
| author | Dean Michael Berris <dberris@google.com> | 2018-02-01 02:21:54 +0000 |
|---|---|---|
| committer | Dean Michael Berris <dberris@google.com> | 2018-02-01 02:21:54 +0000 |
| commit | cdca0730be2af252d1498b752d489bdcbb054681 (patch) | |
| tree | 6d5411b6d6a3709cd12f6b85aa779b55aac2f597 /llvm/lib/CodeGen/SelectionDAG/FastISel.cpp | |
| parent | 32b615c2a1c311967f97ad65b7d0153fac719d36 (diff) | |
| download | bcm5719-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.cpp | 1 |
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; } |

