Как оптимизировать вызовы функций без встроенных тривиальных функций с помощью llvm opt? - PullRequest
0 голосов
/ 03 февраля 2020

С llvm, какие опции мне нужно передать на opt, чтобы оптимизировать тривиальные вызовы функций?

Скажем, у меня есть код llvm с такими вызовами:

  tail call void @myfunc(i8* null)

С myfun c примерно так:

; Function Attrs: noinline norecurse nounwind
define linkonce_odr void @myfunc(i8* %.1) local_unnamed_addr #0 {
.3:
  %.4 = icmp eq i8* %.1, null
  br i1 %.4, label %.3.if, label %.3.endif, !prof !0

.3.if:                                            ; preds = %.3
  ret void

.3.endif:                                         ; preds = %.3
  %.7 = bitcast i8* %.1 to i64*
  %.4.i = atomicrmw add i64* %.7, i64 1 monotonic
  ret void
}

Поскольку myfun c ничего не делает для ввода null, вызов функции можно оптимизировать. Я знаю, что llvm может это сделать, но мне не ясно, какой вариант мне нужно для этого передать opt.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...