Displaying 7 results from an estimated 7 matches for "abiinfo".
2012 Oct 08
1
[LLVMdev] Fwd: Multiply i8 operands promotes to i32
...Basic/Targets.cpp (clang codebase)
set ints to be 16 bits wide, so you should get 16bit mults straight away
without promotion. But anyways for 8bit multiplicantions you can do the
following to bypass argument promotion:
1) go to the lib/CodeGen/TargetInfo.cpp (clang codebase)
2) implement a MSP430ABIInfo class derived from ABIInfo, check how other
targets do it in the same file. The important part here is how you
implement the classifyReturnType and classifyArgumentType functions, they
should basically look like this:
class MSP430ABIInfo : public ABIInfo
{
public:
MSP430ABIInfo (CodeGenTypes &am...
2014 Oct 18
3
[LLVMdev] Performance regression on ARM
Hi Chandler,
That's embarrassing how weird this part of clang is. I have a provisional
patch which fixes the problem but underlines clang's problems. I will
submit it tonight for comments.
суббота, 18 октября 2014 г. пользователь Chandler Carruth написал:
>
> On Fri, Oct 17, 2014 at 7:51 AM, Anton Korobeynikov <
> anton at korobeynikov.info
>
2015 Jul 23
1
[LLVMdev] signext on function parameters and return.
...t; The target hook is classifyArgumentType() and classifyReturnType() in tools/clang/lib/CodeGen/TargetInfo.cpp and returning ABIArgInfo::getExtend() causes the signext/zeroexts to be emitted appropriately for the type.
Thanks for the great help. Should these classify calls be moved down
into the ABIInfo base class? They also are not marked virtual yet
targets are expected override as needed.
2015 Jul 23
0
[LLVMdev] signext on function parameters and return.
> -----Original Message-----
> From: llvmdev-bounces at cs.uiuc.edu [mailto:llvmdev-bounces at cs.uiuc.edu]
> On Behalf Of Steve King
> Sent: 23 July 2015 01:45
> To: llvmdev at cs.uiuc.edu
> Subject: [LLVMdev] signext on function parameters and return.
>
> Hello,
> For a simple function taking a short and returning a short, clang
> generates IR with this function
2016 Feb 16
0
Intrinsic opt failure
On 2/16/2016 8:44 AM, Konstantin Vladimirov via llvm-dev wrote:
>
> CI->getArgOperand(0) returns operand with type (double*) rather then
> double, because in our ABI doubles are passed via memory.
The LLVM intrinsics in the LLVM IR must conform to whatever the IR's
requirements are. That means that even in the case of your backend, the
arguments to the intrinsic must be doubles,
2015 Jul 23
2
[LLVMdev] signext on function parameters and return.
Hello,
For a simple function taking a short and returning a short, clang
generates IR with this function signature:
define signext i16 @foo(i16 signext %x)
Some questions please:
1) For the input parameter and return value, does the target control
whether clang uses signext vs something else? If so, how does this
target query work?
2) Does the presence of the signext mean it's imperative
2016 Feb 16
2
Intrinsic opt failure
Hi,
Working on private backend, based on llvm-3.7
Inside lib/Transforms/InstCombine/InstCombineCompares.cpp there is
attempt to optimize fabs:
if (F->getIntrinsicID() == Intrinsic::fabs ||
...
switch (I.getPredicate()) {
...
case FCmpInst::FCMP_OGT:
return new FCmpInst(FCmpInst::FCMP_ONE, CI->getArgOperand(0), RHSC);
But
CI->getArgOperand(0)