[RISCV] Add support for -mcpu option.
authorZakk Chen <zakk.chen@sifive.com>
Thu, 16 Jul 2020 17:32:01 +0000 (10:32 -0700)
committerZakk Chen <zakk.chen@sifive.com>
Thu, 16 Jul 2020 18:46:22 +0000 (11:46 -0700)
commit294d1eae75bf8867821a4491f0d67445227f8470
tree40906f95b1c53922ad1adcc3eb285457a2398e80
parenta394aa1b974bd320242569e5bed53284010cfa63
[RISCV] Add support for -mcpu option.

Summary:
1. gcc uses `-march` and `-mtune` flag to chose arch and
pipeline model, but clang does not have `-mtune` flag,
we uses `-mcpu` to chose both infos.
2. Add SiFive e31 and u54 cpu which have default march
and pipeline model.
3. Specific `-mcpu` with rocket-rv[32|64] would select
pipeline model only, and use the driver's arch choosing
logic to get default arch.

Reviewers: lenary, asb, evandro, HsiangKai

Reviewed By: lenary, asb, evandro

Tags: #llvm, #clang

Differential Revision: https://reviews.llvm.org/D71124
clang/lib/Basic/Targets/RISCV.cpp
clang/lib/Basic/Targets/RISCV.h
clang/lib/Driver/ToolChains/Arch/RISCV.cpp
clang/lib/Driver/ToolChains/CommonArgs.cpp
clang/test/Driver/riscv-arch.c
clang/test/Driver/riscv-cpus.c [new file with mode: 0644]
clang/test/Misc/target-invalid-cpu-note.c
llvm/include/llvm/Support/RISCVTargetParser.def [new file with mode: 0644]
llvm/include/llvm/Support/TargetParser.h
llvm/lib/Support/TargetParser.cpp
llvm/lib/Target/RISCV/RISCV.td