------------------------------
Message: 4
Date: Wed, 2 Jun 2010 11:07:39 -0700
From: Dale Johannesen <dalej@apple.com>
Subject: Re: [LLVMdev] Generating Floating point constants
To: St?phane Letz <letz@free.fr>
Cc: llvmdev@cs.uiuc.edu
Message-ID: <AEC895CC-E887-4329-8743-FA606BD401F6@apple.com>
Content-Type: text/plain; charset=iso-8859-1and you don't care about the precise hexadecimal
representation, AFAIK just printing a decimal float works.Seems like some values cannot be assembled later on (for instance with "llc")
Yes, there are floating point values (such as NaNs) that cannot be expressed in decimal, and others that would require a prohibitively large number of digits. You don't want to do that.
The code that writes out APFloats is in WriteConstantInt [sic] in VMCore/AsmWriter.cpp. It's not set up to do conversions separately from writing out, but you should be able to figure it out.
Thanks... but this is linked to the LLVM code base right?
It's part of LLVM, yes.
Is there any self-contained code that can be used to handle floats when writing textual LLVM IR?
Not that I know of.
I'm becoming crazy with this stuff, for instance
0.8f get converted in 0x3FE99999A0000000 by LLVM (looking at textual generated IR) but the following tool:
http://babbage.cs.qc.edu/IEEE-754/Decimal.html gives:
0x3FE999999999999A instead and this value cannot be read back by "llc"...
Am I the only one to need to generate constants float in LLVL IR ?
Stéphane Letz