HomePhabricator

[GlobalISel][IRTranslator] Move line zero DebugLoc creation to constant…

Authored by aemerson on Apr 28 2021, 11:16 PM.

Description

[GlobalISel][IRTranslator] Move line zero DebugLoc creation to constant translation. NFC.

This is a compile time optimization. DILocation:get() is expensive to call, and
we were calling it to create a line zero debug loc for *every* instruction we
translated. We only really need to do this just before we build constants in the
entry block, so I moved this code there. This reduces the LLVM -O0 codegen time
of sqlite3 IR by around 0.7% instructions executed and by about ~2% in CPU time.

We can probably do better with a more involved change, since the reason we need
to create one for each new constant is because we're using the debug scope and
inlined-at loc. If we just use a single instruction's scope and drop the
inlined-at, we can just cache these and have them be free.

Details

Committed
aemersonApr 28 2021, 11:54 PM
Parents
rG465df35355ec: [ARM] Use just ARM::t2B in ARMBlockPlacementPass
Branches
Unknown
Tags
Unknown