[llvm-dev] [llvm] Query the target from an opt pass?

Kevin Neal via llvm-dev llvm-dev at lists.llvm.org
Tue Apr 3 11:15:23 PDT 2018


Hmmm, a quick look at the documentation for TargetTransformInfo doesn't look
like it.

In LegalizeDAG.cpp it uses TLI.getOperationAction() to find out if an SDNode
should be expanded by the legalizer or passed down to the target. That's what
I need to know, but I need it in a pass pre-legalization.

This seems like weird layering, though. Having an "optimization" pass be
looking into specific types of SDNode doesn't seem ideal. But I need to
introduce branches, and I don't think I can do that in the SelectionDAG.
Branches in the middle of a basic block seems ... incorrect. Is there a
good way to get ahold of the correct TargetLoweringBase from a pass? But
there's still the layering issue, no?

Oh, and sorry for the top posting. This is the email client I'm stuck with.

From: Friedman, Eli [mailto:efriedma at codeaurora.org]
Sent: Tuesday, April 03, 2018 1:56 PM
To: Kevin Neal <Kevin.Neal at sas.com>; llvm-dev at lists.llvm.org
Subject: Re: [llvm-dev] [llvm] Query the target from an opt pass?


EXTERNAL
On 4/3/2018 9:25 AM, Kevin Neal via llvm-dev wrote:
I'm working on the #pragma STDC FENV_ACCESS ON support, specifically
the support for a strict version of the FP to unsigned int conversion.

I've got a pass that runs and converts a new intrinsic into code that
uses the FP to signed int conversion code similar to how SelectionDAG
handles this now. Except that SelectionDAG will let the target handle
it if the target says it will.

How do I, from an "optimization" pass, query the target to see if it
already has a better way of handling exactly this case? I grepped around
and I didn't see anything in a pass that looked like what I need.

TargetTransformInfo is probably what you're looking for.

-Eli


--

Employee of Qualcomm Innovation Center, Inc.

Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, a Linux Foundation Collaborative Project
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20180403/ee24a2d5/attachment-0001.html>


More information about the llvm-dev mailing list