[all-commits] [llvm/llvm-project] b8ed69: [RISCV] Support llvm.readsteadycounter intrinsic

Wang Pengcheng via All-commits all-commits at lists.llvm.org
Tue Feb 20 21:12:40 PST 2024


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: b8ed69ecc01385c03844e8fa05ba418a5670d322
      https://github.com/llvm/llvm-project/commit/b8ed69ecc01385c03844e8fa05ba418a5670d322
  Author: Wang Pengcheng <wangpengcheng.pp at bytedance.com>
  Date:   2024-02-21 (Wed, 21 Feb 2024)

  Changed paths:
    M llvm/lib/Target/RISCV/RISCVISelLowering.cpp
    M llvm/lib/Target/RISCV/RISCVISelLowering.h
    M llvm/lib/Target/RISCV/RISCVInstrInfo.td
    A llvm/test/CodeGen/RISCV/readsteadycounter.ll

  Log Message:
  -----------
  [RISCV] Support llvm.readsteadycounter intrinsic

This intrinsic was introduced by #81331, which is a lot like
`llvm.readcyclecounter`.

For the RISCV implementation, we rename `ReadCycleWide` pseudo to
`ReadCounterWide` and make it accept two operands (the low and high
parts of the counter). As for legalization and lowering parts, we
reuse the code of `ISD::READCYCLECOUNTER` (make it able to handle
both intrinsics), and we use `time` CSR for `ISD::READSTEADYCOUNTER`.

Tests using Clang builtins are runned on real hardware and it works
as excepted.

Reviewers: asb, MaskRay, dtcxzyw, preames, topperc, jhuber6

Reviewed By: jhuber6, asb, MaskRay, dtcxzyw

Pull Request: https://github.com/llvm/llvm-project/pull/82322



To unsubscribe from these emails, change your notification settings at https://github.com/llvm/llvm-project/settings/notifications


More information about the All-commits mailing list