GlobalISel: Move finalizeLowering call later
authorMatt Arsenault <Matthew.Arsenault@amd.com>
Mon, 6 Jul 2020 03:21:30 +0000 (23:21 -0400)
committerMatt Arsenault <Matthew.Arsenault@amd.com>
Mon, 6 Jul 2020 13:19:40 +0000 (09:19 -0400)
commit521ebc168152ab72047e2e7c81c8c6724b3e7623
tree72ae6db97e75c657d0ae4af229d66a62e57e9fa5
parenta5b9ad7e9aca1329ba310e638dafa58c47468a58
GlobalISel: Move finalizeLowering call later

This matches the DAG behavior where this is called after the loop
checking for calls. The AMDGPU implementation depends on knowing if
there are calls in the function or not, so move this later.

Another problem is finalizeLowering is actually called twice; I was
seeing weird inconsistencies since the first call would produce
unexpected results and the second run would correct them in some
contexts. Since this requires disabling the verifier, and it's useful
to serialize the MIR immediately after selection, FinalizeISel should
probably not be a real pass.
llvm/lib/CodeGen/GlobalISel/InstructionSelect.cpp