Files
clang-p2996/llvm/test/CodeGen/RISCV/isel-optnone.ll
eopXD 2cadf84fc8 [RISCV] Pass OptLevel to RISCVDAGToDAGISel correctly
Originally, `OptLevel` isn't passed into the `MachineFunctionPass`.
This lets the default parameter of `SelectionDAGISel`, which is
`CodeGenOpt::Default`, be passed in. OptLevelChanger captures the
optimization level with the parameter, and rather not the value
within `TargetMachine`. This lets the optimization be
unintentionally overwriten if other value than `CodeGenOpt::Default`
passed.

This patch fixes this by passing the optimization level rather
than using the default value.

Reviewed By: craig.topper

Differential Revision: https://reviews.llvm.org/D126641
2022-05-30 17:22:50 -07:00

23 lines
568 B
LLVM

; REQUIRES: asserts
; RUN: llc < %s -O0 -mtriple=riscv64 -debug-only=isel 2>&1 | FileCheck %s
define i32* @fooOptnone(i32* %p, i32* %q, i32** %z) #0 {
; CHECK-NOT: Changing optimization level for Function fooOptnone
; CHECK-NOT: Restoring optimization level for Function fooOptnone
entry:
%r = load i32, i32* %p
%s = load i32, i32* %q
%y = load i32*, i32** %z
%t0 = add i32 %r, %s
%t1 = add i32 %t0, 1
%t2 = getelementptr i32, i32* %y, i32 1
%t3 = getelementptr i32, i32* %t2, i32 %t1
ret i32* %t3
}
attributes #0 = { nounwind optnone noinline }