This is an archive of the discontinued LLVM Phabricator instance.

[SelectionDAG][PowerPC][AArch64][X86][ARM] Add chain input and output the ISD::FLT_ROUNDS_
ClosedPublic

Authored by craig.topper on Feb 25 2020, 11:52 AM.

Details

Summary

This node reads the rounding control which means it needs to be ordered properly with operations that change the rounding control. So it needs to be chained to maintain order.

This patch adds a chain input and output to the node and connects it to the chain in SelectionDAGBuilder. I've update all in-tree targets to connect their chain through their lowering code.

Diff Detail

Event Timeline

craig.topper created this revision.Feb 25 2020, 11:52 AM
Herald added a project: Restricted Project. · View Herald TranscriptFeb 25 2020, 11:52 AM

Add test case for X86

efriedma accepted this revision.Feb 25 2020, 3:47 PM

LGTM, assuming you verified we have reasonable test coverage on the targets you modified.

llvm/lib/Target/PowerPC/PPCISelLowering.cpp
8310

Changing "Glue" to "other" looked strange at first glance, but I guess this is the only place that uses this node.

This revision is now accepted and ready to land.Feb 25 2020, 3:47 PM
This revision was automatically updated to reflect the committed changes.
craig.topper marked an inline comment as done.