Displaying 20 results from an estimated 40000 matches similar to: "[LLVMdev] select legalization"
2013 Feb 17
3
[LLVMdev] keeping instructions in order and hidden dependencies
AFAIK, You have two choices: use a pseudo that is lowered into separate instructions later as part of asm emission, or use MI bundles. The former is generally what existing targets use for this sort of thing, but perhaps the second would work better for you.
Cameron
On Feb 16, 2013, at 8:37 PM, Reed Kotler <rkotler at mips.com> wrote:
> Some of my pseudos do conditional branch .+4 and
2013 Feb 17
0
[LLVMdev] keeping instructions in order and hidden dependencies
One of my reasons for lowering things early is that I need to get an
accurate count of the size of things.
Some of the pseudos even have instructions like compare immediate, which
in Mips 16 has two forms depending on the magnitude of the immediate field.
Though I suppose it's possible to leave things as a pseudo and calculate
their size, though I'm not sure where I could store the
2013 Feb 17
4
[LLVMdev] keeping instructions in order and hidden dependencies
You are trying to do a few different things here, and a uniform solution may not work for all of them. For a fixed instruction sequence, e.g. a special kind of move-and-branch sequence used for tail calls, you probably want a pseudo. If you are trying to combine arbitrary instructions together, e.g. Thumb IT blocks, you probably want to use bundles, even if the sequences are a fixed length. I
2013 Feb 17
2
[LLVMdev] keeping instructions in order and hidden dependencies
I have some pseudos that I am expanding in the Mips 16 port. Currently
they are blasted in one chunk as a multi line instruction sequence but I
am changing the code now to expand them
after register allocation.
They are essentially macros and I need to make sure, at this time at
least, that the individual instructions are not reordered or moved around.
There are dependencies sometimes between
2013 Feb 17
0
[LLVMdev] keeping instructions in order and hidden dependencies
Some of my pseudos do conditional branch .+4 and such.
I don't want the instruction scheduler to get creative on me.
On 02/16/2013 07:20 PM, reed kotler wrote:
> I have some pseudos that I am expanding in the Mips 16 port. Currently
> they are blasted in one chunk as a multi line instruction sequence but I
> am changing the code now to expand them
> after register allocation.
2013 Feb 17
0
[LLVMdev] keeping instructions in order and hidden dependencies
Sounds like bundles will be the simplest to start with though I suppose
I could just lower the pseudos after scheduling is done; for now.
Bundles will prevent things from being able to be scheduled in more
creative ways but for that I need to think more about the problem.
So I can just create a bundle, insert instructions in it, and all will
work more or less?
I'm trying to take the next
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
>
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 Sep 26
5
[LLVMdev] mips16 puzzle
We already divided out our classes as you did for ARM.
The problem here is that we have a store/load byte/halfword to/from a
Frame object.
We know at that time that it's not going to be possible to store it
using SP because there is only such instructions for store/load of a word.
What we would want to do is to move SP into a Mips 16 register and then
do a indexed load/store off of that
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 Jan 09
2
[LLVMdev] mips16 hard float puzzle
On 01/08/2013 01:48 PM, Eli Friedman wrote:
> On Mon, Jan 7, 2013 at 6:07 PM, reed kotler <rkotler at mips.com> wrote:
>> For example:
>>
>> /home/rkotler/llvm/install/bin/llc -mcpu=mips16 hf16_2.ll -march=mipsel
>> -relocation-model=pic -o hf16_2.s -O3 -mips16-hard-float -soft-float
> Try something like the following:
>
> float f;
> double test(void*
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 Sep 16
1
[LLVMdev] Pattern class
Here is a simple place I wanted to use it.
...
On multiply, the result implicit is placed in a 64 bit hi/lo register.
//
// Format: MFLO rx MIPS16e
// Purpose: Move From LO Register
// To copy the special purpose LO register to a GPR.
//
def Mflo16: FRR16_M_ins<0b10010, "mflo", IIAlu> {
let Uses = [LO];
let neverHasSideEffects = 1;
}
//
// Pseudo Instruction for mult
//
2013 May 28
2
[LLVMdev] optimize for size
On 05/27/2013 10:48 PM, Evan Cheng wrote:
> I don't quite understand your question. Clang already supports -Os option.
>
> Evan
Okay.
Do I need to add anything to the llc command line?
> Sent from my iPad
>
> On May 27, 2013, at 7:47 PM, reed kotler <rkotler at mips.com> wrote:
>
>> I'm trying to set the default optimizations for mips16.
>>
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
2013 Feb 17
2
[LLVMdev] pseudo lowering
On Feb 17, 2013, at 1:01 PM, Reed Kotler <rkotler at mips.com> wrote:
> On 02/17/2013 12:48 PM, Andrew Trick wrote:
>> On Feb 16, 2013, at 1:31 PM, Cameron Zwarich <zwarich at apple.com> wrote:
>>
>>> That's exactly the right place.
>> Really? You don't want the expansion to be optimized? You want to specify a machine model for the pseudo's
2012 Sep 26
0
[LLVMdev] mips16 puzzle
Ok. That's a somewhat different problem, then. Devil will be in the details of what you want to do. A few options. First is to always have a standard frame pointer register available and reference off of that. Caveat: dynamic stack realignment and vararrays muck with that more than a bit. Second is what gcc is doing and reserve a register just for this in addition to the frame register.
2013 Nov 23
2
[LLVMdev] bugpoint question
In that case it tries to do something but fails.
rkotler at ubuntu-rkotler:~/testmips16$
/home/rkotler/llvmw/install/bin/bugpoint casts.bc -llc-safe
--safe-tool-args -target=mips-linux-gnu -mcpu=mips16
-mips16-constant-islands
Read input file : 'casts.bc'
*** All input ok
Initializing execution environment: Found llc:
/home/rkotler/llvmw/install/bin/llc
Running the code
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 05
4
[LLVMdev] mips16 hard float puzzle
On 01/04/2013 06:08 PM, Eli Friedman wrote:
> On Fri, Jan 4, 2013 at 4:08 PM, reed kotler <rkotler at mips.com> wrote:
>> I'm working on mips16 hard float which at a first approximation is just soft
>> float but calls different library routines. Those different library routines
>> are just an implementation (in mips32 mode) of soft float using mips32
>>