Advertisement
Guest User

Untitled

a guest
Jul 6th, 2022
39
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.83 KB | None | 0 0
  1. diff --git a/llvm/lib/Target/RISCV/RISCVInstrInfo.td b/llvm/lib/Target/RISCV/RISCVInstrInfo.td
  2. index 06a90438838e..50c36e3a5aad 100644
  3. --- a/llvm/lib/Target/RISCV/RISCVInstrInfo.td
  4. +++ b/llvm/lib/Target/RISCV/RISCVInstrInfo.td
  5. @@ -1653,6 +1653,17 @@ def : Pat<(trap), (UNIMP)>;
  6. // debugger if possible.
  7. def : Pat<(debugtrap), (EBREAK)>;
  8.  
  9. +// FIXME: replace GRP with other GPR class which excludes X6, X7, X28, X5 as ARM did
  10. +let Predicates = [IsRV64], Uses = [ X5 ],
  11. + Defs = [ X1, X6, X7, X28, X29, X30, X31 ] in {
  12. +def HWASAN_CHECK_MEMACCESS : Pseudo<
  13. + (outs), (ins GPRNoX1X6X7X28X29X30X31:$ptr, i32imm:$accessinfo),
  14. + [(int_hwasan_check_memaccess X5, GPRNoX1X6X7X28X29X30X31:$ptr, (i32 timm:$accessinfo))]>;
  15. +def HWASAN_CHECK_MEMACCESS_SHORTGRANULES : Pseudo<
  16. + (outs), (ins GPRNoX1X6X7X28X29X30X31:$ptr, i32imm:$accessinfo),
  17. + [(int_hwasan_check_memaccess_shortgranules X5, GPRNoX1X6X7X28X29X30X31:$ptr , (i32 timm:$accessinfo))]>;
  18. +}
  19. +
  20. /// Simple optimization
  21. def : Pat<(add GPR:$rs1, (AddiPair:$rs2)),
  22. (ADDI (ADDI GPR:$rs1, (AddiPairImmLarge AddiPair:$rs2)),
  23. diff --git a/llvm/lib/Target/RISCV/RISCVRegisterInfo.td b/llvm/lib/Target/RISCV/RISCVRegisterInfo.td
  24. index 4ff60ebda5aa..e614c5fff347 100644
  25. --- a/llvm/lib/Target/RISCV/RISCVRegisterInfo.td
  26. +++ b/llvm/lib/Target/RISCV/RISCVRegisterInfo.td
  27. @@ -146,6 +146,10 @@ def GPRNoX0X2 : RegisterClass<"RISCV", [XLenVT], 32, (sub GPR, X0, X2)> {
  28. let RegInfos = XLenRI;
  29. }
  30.  
  31. +def GPRNoX1X6X7X28X29X30X31 : RegisterClass<"RISCV", [XLenVT], 32, (sub GPR, X1, X6, X7, X28, X29, X30, X30)> {
  32. + let RegInfos = XLenRI;
  33. +}
  34. +
  35. // Don't use X1 or X5 for JALR since that is a hint to pop the return address
  36. // stack on some microarchitectures. Also remove the reserved registers X0, X2,
  37. // X3, and X4 as it reduces the number of register classes that get synthesized
  38.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement