Displaying 20 results from an estimated 90000 matches similar to: "[LLVMdev] mode(byte)"
2013 Mar 28
3
[LLVMdev] proposed change to class BasicTTI and dual mode mips16/32 working
So I have dual mode 16/32 compilation on a per function basis working.
I need to clean up some things and then will push the change.
I managed to do everything without needing to change anything in target
independent code thus far. It was a fun puzzle to solve as to how to do
this using only the given APIs.
As for the BasicTransformInfoPassass, for this dual mode I'm using
2014 Aug 31
2
[LLVMdev] lowering and non legal types in fast-isel
I understand that but falling back makes the compilation slower.
I'm wondering what could be done to remove this restriction about fast-isel not being able to
handle non legal types.
________________________________________
From: Anton Korobeynikov [anton at korobeynikov.info]
Sent: Sunday, August 31, 2014 12:55 AM
To: Reed Kotler
Cc: LLVMdev at cs.uiuc.edu
Subject: Re: [LLVMdev] lowering
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
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
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.
2012 Sep 29
1
[LLVMdev] mips16 puzzle
Turned out to be a rather simple fix.
Just copied SP to a virtual register in the beginning of the function.
Then added an extra operand to the DAGs with stack reference load/store,
with the extra operand equal to this virtual register if the Parent of
the address is a LOAD/STORE of an 8 or 16 bit quantity.
It worked fine. When needed SP got copied to a mips 16 register and when
the SP alias
2014 Aug 30
2
[LLVMdev] lowering and non legal types in fast-isel
Fast-isel is not equipped in general to deal with non legal types.
It would seem that an llvm assembler pass run after clang but before
llvm could do the lowering though.
Any thoughts?
Reed
2012 Sep 21
2
[LLVMdev] mips16 puzzle
Actually, SP is already not in the mips 16 register class but there is
some C++ code that is common to mips32, mips64 and mips16 that is
wanting to use SP. It's kind of awkward but does work except in this
case of load/store haflword and byte to stack objects.
Maybe I'm shooting myself in the foot there. I don't know that code too
well so maybe I need to look into it.
There are
2013 Mar 28
0
[LLVMdev] proposed change to class BasicTTI and dual mode mips16/32 working
Hi Reed,
On Mar 28, 2013, at 12:18 PM, Reed Kotler <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 that depend on TTI ?
> I will solve this issue of the BasicTransformInfoPass being immutable after this initial checking
2012 Sep 24
0
[LLVMdev] mips16 puzzle
On Sep 20, 2012, at 11:44 PM, Reed Kotler <rkotler at mips.com> wrote:
> Actually, SP is already not in the mips 16 register class but there is some C++ code that is common to mips32, mips64 and mips16 that is wanting to use SP. It's kind of awkward but does work except in this case of load/store haflword and byte to stack objects.
>
ARM has a similar problem. The InstrInfo
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
2012 Oct 05
1
[LLVMdev] interesting possible compiler bug
For what it's worth, I will be at the social tonight, and am happy to
discuss this paper. I'm a co-author and the instigator the work here to
clarify the spec and allow a large number of exciting optimizations on code
that have previously not be employed merely because of the use of malloc
rather than (for example) alloca.
On Thu, Oct 4, 2012 at 4:40 PM, reed kotler <rkotler at
2014 Feb 25
3
[LLVMdev] configure with clang vs gcc
On 02/25/2014 02:38 PM, Eric Christopher wrote:
> On Tue, Feb 25, 2014 at 2:32 PM, reed kotler <rkotler at mips.com> wrote:
>> On 02/25/2014 09:30 AM, Richard Sandiford wrote:
>>> reed kotler <rkotler at mips.com> writes:
>>>> On 02/24/2014 04:42 PM, Eric Christopher wrote:
>>>>> On Mon, Feb 24, 2014 at 4:40 PM, reed kotler <rkotler at
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
>
2014 Feb 25
2
[LLVMdev] configure with clang vs gcc
I see what my problem is here....
I'll continue to move further.
Seems like Richards fix is still okay.
On 02/25/2014 02:42 PM, Eric Christopher wrote:
> On Tue, Feb 25, 2014 at 2:41 PM, reed kotler <rkotler at mips.com> wrote:
>> On 02/25/2014 02:38 PM, Eric Christopher wrote:
>>> On Tue, Feb 25, 2014 at 2:32 PM, reed kotler <rkotler at mips.com> wrote:
2014 Apr 03
5
[LLVMdev] comparing .o files from different build trees
I'm trying to write a script for checking whether the compiler recursed
properly.
rkotler at mipsswbrd002:~/slave/recurse3be/build$ find . -name "*.o" -exec
cmp '{}' ../../recurse2be/build/'{}' \; |& tee foo.txt
Is anyone else doing this?
There 2 compilers, recurse 2 and recurse3 that in principle should be
identical.
Obviously if there is date and time
2012 Sep 21
0
[LLVMdev] mips16 puzzle
Reed,
It's not clear to me that you need to do anything special here. If you define your MIPS16 register class as not containing SP, then any MIPS16 instructions that get selected and want to read from SP should get a COPY inserted from SP to a MIPS16 vreg. The coalescer should, ideally, get rid of extraneous copies for you.
--Owen
On Sep 20, 2012, at 10:48 PM, Reed Kotler <rkotler at
2014 Feb 25
3
[LLVMdev] configure with clang vs gcc
On 02/24/2014 04:42 PM, Eric Christopher wrote:
> On Mon, Feb 24, 2014 at 4:40 PM, reed kotler <rkotler at mips.com> wrote:
>> I need to leave soon and will take a look in the morning.
>>
>> I did look at the autoconf input files configure.ac
>>
>> There is a disable-zlib but not a disable-valgrind, even though it seems
>> like there used to be.
2012 Sep 21
2
[LLVMdev] mips16 puzzle
Trying to think of a clever way to do something....
On Mips 16, the SP (stack pointer) is not a directly accessible register
in most instructions.
There is a way to move to and from mips 16 registers (subset of mips32)
and mips32 registers.
For the load/store word instructions, there are forms which implicitly
take SP.
However, for store/load byte and store/load halfword, there is no such
2012 Sep 07
1
[LLVMdev] 64 bit special purpose registers
On Thu, Sep 6, 2012 at 10:56 AM, Michael LIAO <michael.hliao at gmail.com>wrote:
> On Thu, Sep 6, 2012 at 10:02 AM, Reed Kotler <rkotler at mips.com> wrote:
> > Here is the problem explained more.
> >
> > Normally there is a 64 bit register that is the result of certain
> multiply
> > and divide instructions.
> > It's really 2 32 bit registers.