This revision was not accepted when it landed; it landed in state "Needs Review". This revision was automatically updated to reflect the committed changes. Closed by commit rG6bcf57f0b7ec: Enable zbb for riscv android (authored by AdityaK <1894981+hiradi...@users.noreply.github.com>). Herald added a project: clang. Herald added a subscriber: cfe-commits.
Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D152729/new/ https://reviews.llvm.org/D152729 Files: clang/lib/Driver/ToolChains/Arch/RISCV.cpp clang/test/Driver/riscv-features.c Index: clang/test/Driver/riscv-features.c =================================================================== --- clang/test/Driver/riscv-features.c +++ clang/test/Driver/riscv-features.c @@ -1,5 +1,7 @@ // RUN: %clang --target=riscv32-unknown-elf -### %s -fsyntax-only 2>&1 | FileCheck %s // RUN: %clang --target=riscv64-unknown-elf -### %s -fsyntax-only 2>&1 | FileCheck %s +// RUN: %clang --target=riscv64-linux-android -### %s -fsyntax-only 2>&1 | FileCheck %s -check-prefixes=ANDROID,DEFAULT +// RUN: %clang -mabi=lp64d --target=riscv64-linux-android -### %s -fsyntax-only 2>&1 | FileCheck %s -check-prefixes=ANDROID,DEFAULT // CHECK: fno-signed-char @@ -8,6 +10,7 @@ // RUN: %clang --target=riscv32-unknown-elf -### %s -mrelax 2>&1 | FileCheck %s -check-prefix=RELAX // RUN: %clang --target=riscv32-unknown-elf -### %s -mno-relax 2>&1 | FileCheck %s -check-prefix=NO-RELAX +// ANDROID: "-target-feature" "+zbb" // RELAX: "-target-feature" "+relax" // NO-RELAX: "-target-feature" "-relax" // DEFAULT: "-target-feature" "+relax" Index: clang/lib/Driver/ToolChains/Arch/RISCV.cpp =================================================================== --- clang/lib/Driver/ToolChains/Arch/RISCV.cpp +++ clang/lib/Driver/ToolChains/Arch/RISCV.cpp @@ -292,8 +292,12 @@ return "rv32e"; else if (MABI.starts_with_insensitive("ilp32")) return "rv32imafdc"; - else if (MABI.starts_with_insensitive("lp64")) + else if (MABI.starts_with_insensitive("lp64")) { + if (Triple.isAndroid()) + return "rv64imafdc_zbb"; + return "rv64imafdc"; + } } // 4. Choose a default based on the triple @@ -309,6 +313,8 @@ } else { if (Triple.getOS() == llvm::Triple::UnknownOS) return "rv64imac"; + else if (Triple.isAndroid()) + return "rv64imafdc_zbb"; else return "rv64imafdc"; }
Index: clang/test/Driver/riscv-features.c =================================================================== --- clang/test/Driver/riscv-features.c +++ clang/test/Driver/riscv-features.c @@ -1,5 +1,7 @@ // RUN: %clang --target=riscv32-unknown-elf -### %s -fsyntax-only 2>&1 | FileCheck %s // RUN: %clang --target=riscv64-unknown-elf -### %s -fsyntax-only 2>&1 | FileCheck %s +// RUN: %clang --target=riscv64-linux-android -### %s -fsyntax-only 2>&1 | FileCheck %s -check-prefixes=ANDROID,DEFAULT +// RUN: %clang -mabi=lp64d --target=riscv64-linux-android -### %s -fsyntax-only 2>&1 | FileCheck %s -check-prefixes=ANDROID,DEFAULT // CHECK: fno-signed-char @@ -8,6 +10,7 @@ // RUN: %clang --target=riscv32-unknown-elf -### %s -mrelax 2>&1 | FileCheck %s -check-prefix=RELAX // RUN: %clang --target=riscv32-unknown-elf -### %s -mno-relax 2>&1 | FileCheck %s -check-prefix=NO-RELAX +// ANDROID: "-target-feature" "+zbb" // RELAX: "-target-feature" "+relax" // NO-RELAX: "-target-feature" "-relax" // DEFAULT: "-target-feature" "+relax" Index: clang/lib/Driver/ToolChains/Arch/RISCV.cpp =================================================================== --- clang/lib/Driver/ToolChains/Arch/RISCV.cpp +++ clang/lib/Driver/ToolChains/Arch/RISCV.cpp @@ -292,8 +292,12 @@ return "rv32e"; else if (MABI.starts_with_insensitive("ilp32")) return "rv32imafdc"; - else if (MABI.starts_with_insensitive("lp64")) + else if (MABI.starts_with_insensitive("lp64")) { + if (Triple.isAndroid()) + return "rv64imafdc_zbb"; + return "rv64imafdc"; + } } // 4. Choose a default based on the triple @@ -309,6 +313,8 @@ } else { if (Triple.getOS() == llvm::Triple::UnknownOS) return "rv64imac"; + else if (Triple.isAndroid()) + return "rv64imafdc_zbb"; else return "rv64imafdc"; }
_______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits