Displaying 6 results from an estimated 6 matches for "classifyreturntype".
2012 Oct 08
1
[LLVMdev] Fwd: Multiply i8 operands promotes to i32
...yways 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 &CGT) : ABIInfo(CGT) {}
ABIArgInfo classifyReturnType(QualType RetTy) const;
ABIArgInfo classifyArgumentType(QualType RetTy) const;
vir...
2015 Jul 23
0
[LLVMdev] signext on function parameters and return.
...something else? If so, how does this
> target query work?
Yes, the function signature in the IR is target specific since it already contains some ABI information at this point. I know Mips would use the definition above but other targets may vary.
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.
> 2) Does the presence of the signext mean it's imperative to sign
> extend, or that extension, only if needed, should be signed?
It...
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
2014 Nov 24
4
[LLVMdev] Proposed patches for Clang 3.5.1
...-target
* r214025 - [Driver][Mips] Check output of -dynamic-linker arguments by the Clang driver
* r214662 - [Mips] Add the `mips64-linux-gnu` target to the test case to check `in128` type handling.
* r217147 - [mips] Zero-sized structs cannot be ignored in MipsABIInfo::classifyReturnType() for O32
Proposed llvm patches:
* r216920 - Fix left shifts of negative values in MipsDisassembler.
* r221408 - [mips64] Fix MIPS64 exception personality encoding
* r221453 - [mips] Tolerate the use of the %z inline asm operand modifier with non-immediates.
* r...
2015 Jul 23
1
[LLVMdev] signext on function parameters and return.
On Thu, Jul 23, 2015 at 3:59 AM, Daniel Sanders
<Daniel.Sanders at imgtec.com> wrote:
>
> 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 a...
2014 Nov 24
4
[LLVMdev] Proposed patches for Clang 3.5.1
...tput of -dynamic-linker arguments
> by the Clang driver
> >
> > * r214662 - [Mips] Add the `mips64-linux-gnu` target to the test case to
> check `in128` type handling.
> >
> > * r217147 - [mips] Zero-sized structs cannot be ignored in
> MipsABIInfo::classifyReturnType() for O32
>
> These look OK to me you you can merge them to the 3.5 branch yourself,
> or if you aren't comfortable with this, I can do it. If you decide
> to merge them yourself, make sure you use the merge script so we get a
> consistent commit message format: utils/release/m...