Displaying 20 results from an estimated 20000 matches similar to: "Adding FP environment register modeling for constrained FP nodes"
2019 Nov 19
2
Question about physical registers in ISel
Hi Quentin,
Thanks, that explanation makes sense. I can see that in a normal register
machine, implicitly defs must be physical registers. In a stack machine
like WebAssembly, though, implicit defs are known to be pushed onto the
value stack just like any other defs. Slots on the value stack are
represented by virtual registers until stackification, so for WebAssembly
we do need the implicit defs
2019 Nov 19
2
Question about physical registers in ISel
To get into more detail, I'm trying to update WebAssembly's `call`
instruction. `call` is currently constrained to return one or zero
arguments, so in TableGen we have a separate call Instruction for each
possible return type. But I need to update calls to return arbitrarily many
values of any combination of WebAssembly types, so even if we imposed some
reasonable artificial limit like 8
2019 Nov 20
2
Question about physical registers in ISel
Can you elaborate on the fix you are thinking of? I'm not sure what you're
thinking should change.
On Tue, Nov 19, 2019 at 3:51 PM Quentin Colombet <qcolombet at apple.com>
wrote:
> It sounds to me that we should fix SDISel to accept both physical and
> virtual definitions on variadic instructions. Though I wouldn’t bother
> adding the support for implicit virtual
2019 Nov 19
2
Question about physical registers in ISel
Hi all,
I need to figure out why InstrEmitter::EmitMachineNode assumes that when
the number of outputs of a MachineSDNode is greater than the number of defs
in the corresponding MCInstrDesc, the outputs in the difference will be
placed into physical registers as opposed to virtual registers.
The specific line in question is:
bool HasPhysRegOuts = NumResults > NumDefs &&
2017 Apr 20
4
[cfe-dev] FE_INEXACT being set for an exact conversion from float to unsigned long long
> This seems like it was done for perf reason (mispredict). Conditional-to-cmov transformation should keep
> from introducing additional observable side-effects, and it's clear that whatever did this did not account
> for floating point exception.
That’s a very reasonable statement, but I’m not sure it corresponds to the way we have typically approached this sort of problem.
In
2019 Sep 16
3
Handling of FP denormal values
Hi all,
While reviewing a recent clang documentation change, I became aware of an issue with the way that clang is handling FP denormals. There is currently some support for variations in the way denormals are handled, but it isn't consistent across architectures and generally feels kind of half-baked. I'd like to discuss possible solutions to this problem.
First, there is a clang
2017 Mar 15
2
Speculative execution of FP divide Instructions - Call-Graph Simplify
It’s true, I am working on this. I have committed the initial patch to add constrained intrinsics for the basic FP operations. This has the desired effect of preventing optimizations that would violate strict FP semantics with regard to rounding mode and exception status, but it also prevents many safe optimizations. Later this year I’ll be going through the code base and trying to teach
2017 Nov 03
2
FW: clarification needed for the constrained fp implementation.
Copying the list on a discussion of potentially general interest....
From: Kaylor, Andrew
Sent: Friday, November 03, 2017 1:11 PM
To: 'Ding, Wei' <Wei.Ding2 at amd.com>; Sumner, Brian <Brian.Sumner at amd.com>; Arsenault, Matthew <Matthew.Arsenault at amd.com>
Subject: RE: clarification needed for the constrained fp implementation.
Hi Wei,
I've been meaning to
2017 Nov 04
2
FW: clarification needed for the constrained fp implementation.
On 11/03/2017 05:26 PM, 陳韋任 via llvm-dev wrote:
>
>
> 2017-11-04 4:29 GMT+08:00 Kaylor, Andrew via llvm-dev
> <llvm-dev at lists.llvm.org <mailto:llvm-dev at lists.llvm.org>>:
>
> Copying the list on a discussion of potentially general interest….
>
> *From:* Kaylor, Andrew
> *Sent:* Friday, November 03, 2017 1:11 PM
> *To:* 'Ding,
2017 Mar 15
2
Speculative execution of FP divide Instructions - Call-Graph Simplify
Hi all,
I came across an issue caused by the Call-Graph Simplify Pass. Here is a a
small repro:
```
define double @foo(double %a1, double %a2, double %a3) #0 {
entry:
%a_mul = fmul double %a1, %a2
%a_cmp = fcmp ogt double %a3, %a_mul
br i1 %a_cmp, label %a.then, label %a.end
a.then:
%a_div = fdiv double %a_mul, %a3
br label %a.end
a.end:
%a_factor = phi double [ %a_div, %a.then ],
2008 Feb 29
10
[PATCH] [RFC] More fp instructions for realmode emulation (Enables booting OS/2 as a HVM guest on Intel/VT hardware)
This patch adds a number of fp instructions needed for OS/2 to boot as a HVM
guest on Intel/VT hardware. It appears to work fine, and OS/2 is now finally
working on Intel/VT as well as AMD/SVM.
I''m a little concerned about the "correctness" of the FSTSW emulation and
the use of inline assembly directly using the corresponding ops for
emulation. Wrt FSTSW, it is really two ops
2018 Jan 09
2
[cfe-dev] Why is #pragma STDC FENV_ACCESS not supported?
I think we're going to need to create a new mechanism to communicate strict FP modes to the backend. I think we need to avoid doing anything that will require re-inventing or duplicating all of the pattern matching that goes on in instruction selection (which is the reason we're currently dropping that information). I'm out of my depth on this transition, but I think maybe we could
2018 Jan 09
5
[cfe-dev] Why is #pragma STDC FENV_ACCESS not supported?
Andrew Kaylor wrote:
>In general, the current "strict FP" handling stops at instruction
>selection. At the MachineIR level we don't currently have a mechanism
>to prevent inappropriate optimizations based on floating point
>constraints, or indeed to convey such constraints to the backend.
>Implicit register use modeling may provide some restriction on some
2019 Nov 15
3
RFC: token arguments and operand bundles
We really have been trying to keep in mind that LLVM needs to support multiple front ends, which may be implementing different language standards. As much as possible, I’ve been trying to let the IEEE 754 spec drive my thinking about this, though I’ll admit that on a few points I’ve use the C99 spec as a sort of reference interpretation of IEEE 754.
LLVM’s IRBuilder has been recently updated to
2018 Jan 09
4
[cfe-dev] Why is #pragma STDC FENV_ACCESS not supported?
> On Jan 9, 2018, at 1:53 PM, Kaylor, Andrew via cfe-dev <cfe-dev at lists.llvm.org> wrote:
>
> I think we’re going to need to create a new mechanism to communicate strict FP modes to the backend. I think we need to avoid doing anything that will require re-inventing or duplicating all of the pattern matching that goes on in instruction selection (which is the reason we’re
2018 Mar 02
2
how to simplify FP ops with an undef operand?
Well, using ConstantFP to represent NaNs is at least unclear enough that someone claimed that there is no NaN constant in LLVM IR. :-)
But your point is well made. I guess what I was really asking for is a 'NaN' token in the asm writer/parser. This is obviously a much less important issue, but I can't say that I would look at 0x7f800000 in an ll file and immediately think, "Oh,
2018 Feb 28
2
how to simplify FP ops with an undef operand?
Yes, if %x is a NaN, we should expect that NaN is propagated.
I'm still not sure what to do here. We can take comfort in knowing that
whatever we do is likely an improvement over the current situation though.
:)
That's because the code in InstSimplify is inconsistent with the LangRef:
http://llvm.org/docs/LangRef.html#undefined-values (UB for fdiv by 0?)
...and both of those are
2018 Feb 28
2
how to simplify FP ops with an undef operand?
Correct - NaN is not undef in IR. But we don't have a NaN in this example.
We have its moral equivalent in LLVM - an uninitialized value, undef.
So we're not introducing any extra uncertainty by propagating the undef.
The backend can choose whatever encoding of undef makes sense when lowering?
And yes, I don't know why FP-div-by-zero would ever be UB. I think that
text in the LangRef
2018 Feb 28
0
how to simplify FP ops with an undef operand?
Why is NaN “just ‘undef’ in IR”? NaN is a specific value with well-defined behavior. I would think that unless the no-NaNs flag is used we need to preserve the behavior of NaNs.
From: Sanjay Patel [mailto:spatel at rotateright.com]
Sent: Wednesday, February 28, 2018 12:08 PM
To: Kaylor, Andrew <andrew.kaylor at intel.com>
Cc: llvm-dev <llvm-dev at lists.llvm.org>; Nuno Lopes
2018 Jan 10
0
[cfe-dev] Why is #pragma STDC FENV_ACCESS not supported?
On 9 Jan 2018 22:55, "John McCall via llvm-dev" <llvm-dev at lists.llvm.org>
wrote:
On Jan 9, 2018, at 3:50 PM, Kaylor, Andrew <andrew.kaylor at intel.com> wrote:
>The standard argument against trying to introduce "scope-like" mechanisms
to LLVM IR is inlining;
>unless you're going to prevent functions that use stricter/laxer FP rules
from being inlined