aboutsummaryrefslogtreecommitdiff
path: root/flang/lib/Frontend/CompilerInvocation.cpp
diff options
context:
space:
mode:
authorCraig Topper <craig.topper@sifive.com>2024-09-03 22:49:02 -0700
committerGitHub <noreply@github.com>2024-09-03 22:49:02 -0700
commit41402c6a8aa3a4336122bdb4530fb05538efedba (patch)
treeab669461f1148f2c8e9423056c0ac99792beb061 /flang/lib/Frontend/CompilerInvocation.cpp
parent3e798476de466e8a051d3e753db379731a8d9705 (diff)
downloadllvm-41402c6a8aa3a4336122bdb4530fb05538efedba.zip
llvm-41402c6a8aa3a4336122bdb4530fb05538efedba.tar.gz
llvm-41402c6a8aa3a4336122bdb4530fb05538efedba.tar.bz2
[RISCV][GISel] Use CCValAssign::getCustomReg for converting f16/f32<->GPR. (#105700)
This gives us much better control of the generated code for GISel. I've tried to closely match the current gisel code, but it looks like we had 2 layers of G_ANYEXT in some cases before. SelectionDAG now checks needsCustom() instead of detecting the special cases in the Bitcast handler. Unfortunately, IRTranslator for bitcast still generates copies between register classes of different sizes. Because of this we can't handle i16<->f16 bitcasts without crashing. Not sure if I should teach RISCVInstrInfo::copyPhysReg to allow copies between FPR16 and GPR or if I should convert the copies to instructions in GISel.
Diffstat (limited to 'flang/lib/Frontend/CompilerInvocation.cpp')
0 files changed, 0 insertions, 0 deletions