MaskRay added a comment.

> Context not available

See 
https://llvm.org/docs/Phabricator.html#requesting-a-review-via-the-web-interface



================
Comment at: compiler-rt/cmake/Modules/AllSupportedArchDefs.cmake:83
 set(ALL_XRAY_SUPPORTED_ARCH ${X86_64} ${ARM32} ${ARM64} ${MIPS32} ${MIPS64}
-               powerpc64le ${HEXAGON} ${LOONGARCH64})
+               powerpc64le ${HEXAGON} ${LOONGARCH64} #[[${RISCV32}]] 
${RISCV64})
 endif()
----------------
Just make RISCV32 available? Otherwise we wouldn't need `riscv32_SOURCES`


================
Comment at: compiler-rt/lib/xray/xray_riscv.cpp:51
+encodeRTypeInstruction(uint32_t Opcode, uint32_t Rs1, uint32_t Rs2,
+                       uint32_t Rd) XRAY_NEVER_INSTRUMENT {
+  return (Rs2 << 20 | Rs1 << 15 | Rd << 7 | Opcode);
----------------
For new functions, consider dropping `XRAY_NEVER_INSTRUMENT`. The runtime 
library cannot be instrumented with `-fxray-instrument` and I an unsure why the 
original impl adds a lot of `XRAY_NEVER_INSTRUMENT`.


================
Comment at: compiler-rt/lib/xray/xray_riscv.cpp:52
+                       uint32_t Rd) XRAY_NEVER_INSTRUMENT {
+  return (Rs2 << 20 | Rs1 << 15 | Rd << 7 | Opcode);
+}
----------------



================
Comment at: compiler-rt/lib/xray/xray_riscv.cpp:286
+                      const XRaySledEntry &Sled) XRAY_NEVER_INSTRUMENT {
+  // FIXME: Implement for riscv?
+  return false;
----------------
Unimplemented features should use TODO instead of FIXME.


================
Comment at: compiler-rt/lib/xray/xray_riscv.cpp:162
+    uint32_t HighestTracingHookAddr =
+        (reinterpret_cast<int64_t>(TracingHook + 0x800) >> 44) & 0xfffff;
+    // We typecast the Tracing Hook to a 32 bit value for RISCV32
----------------
ashwin98 wrote:
> jrtc27 wrote:
> > This is definitely wrong; you probably mean `(((TracingHook >> 32) + 0x800) 
> > >> 12) & 0xfffff`?
> True
`(x + 0x800) >> 12` is used many times. We need a helper like 
`lld/ELF/Arch/RISCV.cpp hi20`. Ditto for lo12.


================
Comment at: llvm/lib/Target/RISCV/RISCVAsmPrinter.cpp:322
 
+void RISCVAsmPrinter::LowerPATCHABLE_FUNCTION_ENTER(const MachineInstr *MI) {
+  emitSled(MI, SledKind::FUNCTION_ENTER);
----------------
I have many comments in D140727 (LoongArch port). Many are probably useful here 
as well.


CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D117929/new/

https://reviews.llvm.org/D117929

_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to