Displaying 20 results from an estimated 1000 matches similar to: "[LLVMdev] getMinimalPhysRegClass"
2012 May 14
4
[LLVMdev] getMinimalPhysRegClass
On 05/14/2012 02:17 PM, Jakob Stoklund Olesen wrote:
> On May 14, 2012, at 1:02 PM, reed kotler wrote:
>
>> Does anyone understand the purpose of :
>>
>> TargetRegisterInfo::getMinimalPhysRegClass ???
> Barely.
>
>> Why is there the presumption to use the minimal subclass?
> The function can be traced back to a time when men were men and registers belonged to
2012 May 14
0
[LLVMdev] getMinimalPhysRegClass
On May 14, 2012, at 1:02 PM, reed kotler wrote:
> Does anyone understand the purpose of :
>
> TargetRegisterInfo::getMinimalPhysRegClass ???
Barely.
> Why is there the presumption to use the minimal subclass?
The function can be traced back to a time when men were men and registers belonged to ONE register class. That concept doesn't make sense any longer, as LLVM supports and
2012 May 14
3
[LLVMdev] getMinimalPhysRegClass
On 05/14/2012 02:42 PM, Jakob Stoklund Olesen wrote:
> On May 14, 2012, at 2:28 PM, reed kotler wrote:
>
>> I'm not using getMinimalPhysRegClass. Some target independent code is using it.
> Probably PEI.
>
>> It makes trouble for us and I would like to submit a patch to make it a virtual function so that I can override it and make it meaningful for Mips, as long as this
2012 May 14
0
[LLVMdev] getMinimalPhysRegClass
On May 14, 2012, at 2:28 PM, reed kotler wrote:
> I'm not using getMinimalPhysRegClass. Some target independent code is using it.
Probably PEI.
> It makes trouble for us and I would like to submit a patch to make it a virtual function so that I can override it and make it meaningful for Mips, as long as this method still exists.
>
> I want to add another register class for
2012 May 14
0
[LLVMdev] getMinimalPhysRegClass
Reed,
On May 14, 2012, at 3:45 PM, reed kotler <rkotler at mips.com> wrote:
> On 05/14/2012 02:42 PM, Jakob Stoklund Olesen wrote:
>> On May 14, 2012, at 2:28 PM, reed kotler wrote:
>>
>>> I'm not using getMinimalPhysRegClass. Some target independent code is using it.
>> Probably PEI.
>>
>>> It makes trouble for us and I would like to
2012 Jan 26
1
[LLVMdev] getMinimalPhysRegClass
Does anyone understand the purpose of this target inpdendent function?
By adding a new register class that is for MIPS16 but not even
referencing it, the compiler breaks because of this code.
def CPU16Regs : RegisterClass<"Mips", [i32], 32, (add
// Return Values and Arguments
V0, V1, A0, A1, A2, A3,
// Callee save
S0, S1
)>;
I'm trying to understand how the
2013 Jan 11
2
[LLVMdev] adding IR attributes to llvm
Yes, you could have mips16 and fastcc.
Mips16 just means that processor mode to execute that function is "mips16".
So in a mips16 designated function, I will just emit mips16 instructions
and in a "nomips16"
function, just emit normal mips32 instructions.
I tend to call this "mips32" normal mode, "standard encoding" because in
reality the processor is
2013 Jan 11
2
[LLVMdev] adding IR attributes to llvm
For target dependent function level attributes, do I need to actually
add them to the enumeration in attributes.h?
I have for example, mips16 and nomips16 as attributes.
Or is this supposed to be done with cc <n>
2013 Jan 11
0
[LLVMdev] adding IR attributes to llvm
I think that Bill Wendlings new attribute implementation would allow me
to do this but it is not ready yet.
Maybe it's okay to just add them to the list of function attributes as I
suggested.
But in the end, someone has to approve the checkin.
On 01/11/2013 07:35 AM, Reed Kotler wrote:
> Yes, you could have mips16 and fastcc.
>
> Mips16 just means that processor mode to execute
2013 Jan 11
0
[LLVMdev] adding IR attributes to llvm
Depends on whether its actually the calling convention, or just an
annotation (I don't know MIPS that well). Could you ever have a case where
you want to declare a function as both mips16 and fastcc, or some other
explicit calling convention?
For PTX, we added two calling conventions to mark kernel functions
(callable by host) from device functions (not callable by host). But this
2013 Apr 01
3
[LLVMdev] proposed change to class BasicTTI and dual mode mips16/32 working
On Thu, Mar 28, 2013 at 12:22 PM, Nadav Rotem <nrotem at apple.com> wrote:
> IMHO the right way to handle target function attributes is to
> re-initialize the target machine and TTI for every function (if the
> attributes changed). Do you have another solution in mind ?
I don't really understand this.
TargetMachine and TTI may be quite expensive to initialize. Doing so for
2014 Jan 29
3
[LLVMdev] making emitInlineAsm protected
On 01/28/2014 06:29 PM, Eric Christopher wrote:
> Uhhhh...
>
> -eric
>
> On Tue, Jan 28, 2014 at 4:56 PM, reed kotler <rkotler at mips.com> wrote:
>> I would like to make the following member of AsmPrinter be protected
>>
>>
>> void EmitInlineAsm(StringRef Str, const MDNode *LocMDNode = 0,
>> InlineAsm::AsmDialect
2014 Jan 31
5
[LLVMdev] emitting function stub for mips16 floating point patch
I'm rewriting this patch for the stubs to not use outputing of raw text.
Generating the instructions is very straightforward and that part is done.
I'm translating the actual function now.
How do you emit an .ent or .globl from asm printer?
.type ?
.end ??
.section ???
I'm studying the classes now but it should be simple to do so if you
know, you can save me some time
because this
2013 Apr 25
1
[LLVMdev] issues with InlineAsm class and #APP/#NOAPP
I'm happy to send you my patch as it stands today.
It's not cleaned up yet all or tested thoroughtly but you can look at
what I'm doing and maybe suggest some alternate paths and if it's not a
matter of redoing everything, I would consider making some changes.
Here is a sample stub:
Consider this line of code:
extern float fpff(float);
We have no idea if this is a mips16 or
2013 Apr 19
3
[LLVMdev] funny llvm bug
> It is exactly intended to handle section names as what they are --
> section names. The only reason it works with GCC is because it writes an
> assembler stream.
+1
Reed, this fails in gcc if you do LTO, no?
> Joerg
Cheers,
Rafael
2013 Apr 24
0
[LLVMdev] issues with InlineAsm class and #APP/#NOAPP
> We also wanted the stubs to be real functions to llvm. That allows them to
> participate properly
> in optimization of various levels (including LTO). They can even be inlined.
> There are other
> planned optimizations that would not work if they were not legitimate
> functions.
I am not saying that the functions should not exist in the IL, just
that they should not be inline
2013 Apr 24
3
[LLVMdev] issues with InlineAsm class and #APP/#NOAPP
On 04/24/2013 03:47 PM, Rafael EspĂndola wrote:
> On 24 April 2013 18:30, reed kotler <rkotler at mips.com> wrote:
>> There are a lot of issues.
>>
>> For one, the function I'm compiling is a mips16 function but the stubs being
>> created are mips32 functions.
>>
> This looks similar to thumb x 32 bit arm. Wouldn't a similar solution
> work for
2013 Mar 28
1
[LLVMdev] proposed change to class BasicTTI and dual mode mips16/32 working
On 03/28/2013 12:22 PM, Nadav Rotem wrote:
> Hi Reed,
>
> On Mar 28, 2013, at 12:18 PM, Reed Kotler <rkotler at mips.com
> <mailto:rkotler at mips.com>> wrote:
>
>> As for the BasicTransformInfoPassass, for this dual mode I'm using
>> createNoTargetTransformInfoPass right now.
>
> So, MIPS does not need LSR, LowerSwitch and other optimizations
2013 Mar 22
0
[LLVMdev] proposed change to class BasicTTI
Hi Reed,
We will need to reconstruct the target machine and the TTI chain when the function attributes change. We currently don't have code for doing that but I suggest that you talk with Bill Wendling about the best way to implement this.
Thanks,
Nadav
On Mar 22, 2013, at 11:30 AM, Reed Kotler <rkotler at mips.com> wrote:
> Just realized that BasicTransformInfoClass is an
2013 Mar 22
4
[LLVMdev] proposed change to class BasicTTI
Just realized that BasicTransformInfoClass is an immutable pass.
Not sure how to reconcile this with fact that there will be different
answers needed depending on the subtarget.
Seems like BasicTansformInfoClass should become a function pass that
does not modify anything.
On 03/22/2013 09:43 AM, Reed Kotler wrote:
> Another way to do this would to be to have a reset virtual function
>