Displaying 20 results from an estimated 2000 matches similar to: "Writing unit tests - how to test re-orderable blocks..."
2019 Mar 08
2
Writing unit tests - how to test re-orderable blocks...
I’m not sure if it’s truly deterministic. It always gives the same results (so far) on my machine but I’m not sure that’s enough.
My guess is it’s probably going to be deterministic on one machine but might well not be deterministic across environments. Like it might give varying results if cross compiled on different hosts, macOS vs intel Linux vs arm vs s390. (Obviously AVR is always a cross
2014 May 19
2
[LLVMdev] Associate IR instruction with corresponding assembly
Hi,
Compiling for both x86 and ARM with llc aborts after this pass.
I have a simple helloworld.c program.
I am attaching the .ll file created by:
*clang -O3 -g -emit-llvm hello.c -c -o hello.bc*
*llvm-dis hello.bc*
Thanks again for the response!
Shruti
On Mon, May 19, 2014 at 1:28 AM, Tobias Grosser <tobias at grosser.es> wrote:
> On 19/05/2014 00:54, shruti padmanabha wrote:
>
2020 Mar 31
3
How to add new AVR targets?
Hi Dylan,
looks ok now.
One thing:
the ISR is now:
__vector_21: ; @__vector_21
__vector_21$local:
sei
push r0
push r1
in r0, 63
push r0
clr r0
push r24
lds r24, v1
sts v2, r24
pop r24
pop r0
out 63, r0
pop r1
pop r0
reti
There are unneccessary push/pops of r1 and r0 too, since the clr is
useless ... GCC had the same
2020 Mar 28
2
How to add new AVR targets?
Hi Dylan,
the following code
volatile uint8_t v1;
volatile uint8_t v2;
__attribute__((interrupt)) void __vector_21(void) {
v2 = v1;
}
produces in C mode:
00000092 <__vector_21>:
92: 80 91 61 00 lds r24, 0x0061 ; 0x800061 <v1>
96: 80 93 60 00 sts 0x0060, r24 ; 0x800060 <__data_end>
9a: 08 95 ret
and in C++ mode:
00000074
2008 Feb 26
8
[PATCH 0/8] RFC: ia64/xen TAKE 2: paravirtualization of hand written assembly code
Hi. I rewrote the patch according to the comments. I adopted generating
in-place code because it looks the quickest way.
The point Eddie wanted to discuss is how to generate code and its ABI.
i.e. in-place generating v.s. direct jump v.s. indirect function call
Indirect function call doesn't make sense because ivt.S is compiled
multi times. And it is up to pv instances to choose in-place
2008 Feb 26
8
[PATCH 0/8] RFC: ia64/xen TAKE 2: paravirtualization of hand written assembly code
Hi. I rewrote the patch according to the comments. I adopted generating
in-place code because it looks the quickest way.
The point Eddie wanted to discuss is how to generate code and its ABI.
i.e. in-place generating v.s. direct jump v.s. indirect function call
Indirect function call doesn't make sense because ivt.S is compiled
multi times. And it is up to pv instances to choose in-place
2020 Mar 31
2
How to add new AVR targets?
Hey Wilhelm,
That's a bug, the "interrupt" attribute is not being recognized by the
backend.
I have fixed it in
https://github.com/llvm/llvm-project/commit/339b34266c1b54a9b5ff2f83cfb1da9cd8c9d90a
Pull the latest LLVM and it should be fixed.
On Tue, Mar 31, 2020 at 8:00 AM Wilhelm Meier <wilhelm.meier at hs-kl.de>
wrote:
> Hi Dylan,
>
> I used the following
2010 Dec 02
0
[LLVMdev] Register Pairing
Hi Borja,
> Without doing what i mentioned and letting LLVM expand all operations wider
> than 8 bits as you asked, the code produced is excellent supposing that many
> of the moves there should be 16 bit moves reducing code size and right
> register allocation, also something important for me is that the code is
> better than gcc's. When i say right reg allocation it doesnt
2010 Dec 01
2
[LLVMdev] Register Pairing
Jeff thanks for those suggestions, that's exactly what i would like to do,
however i dont know how to do it with my current knowledge :\ As far as i
understand patterns only take one instruction as an input (while the pattern
you wrote before takes two) and also, i dont know how to handle register
copying (COPY) in the .td file because they're handled in a different way to
the rest of
2020 Apr 08
2
How to add new AVR targets?
Is there anything I can do about it?
BTW: gcc is loosing the AVR backend, so I would assume, there will be a
greater interest to this in llvm compared to the past.
Thanks,
Wilhelm
Am 03.04.20 um 15:09 schrieb Wilhelm Meier via llvm-dev:
> Should I create an issue in bugzilla for this? Just to be reminded ...
>
> Am 31.03.20 um 09:34 schrieb Wilhelm Meier via llvm-dev:
>> Hi
2012 Jan 10
1
[LLVMdev] SelectionDAG
Hello,
I am working on a AVR backend and have a version up and running that will convert LLVM IR code to assembly code for my target. I have written a bunch of instructions from the AVR Instruction Set in AVRInstrInfo.td and not much else. In a simple test case I am attempting to compile (if that is the word you are supposed to use for this operation) test.ll:
define i8 @foo(i8 %a, i8 %b) {
2020 Mar 30
2
How to add new AVR targets?
Hey Wilhelm,
Could you post the LLVM IR generated from your C++ file?
This can be achieved with 'clang -S -emit-llvm'
Cheers
On Sat, Mar 28, 2020 at 6:36 PM Wilhelm Meier <wilhelm.meier at hs-kl.de>
wrote:
> Answering partly to myself there was a extern "C" missing.
>
> But the register pushes ans reti are still missing.
>
> Whats wrong?
>
> Am
2010 Nov 27
3
[LLVMdev] Register Pairing
Hello, some months ago i wrote to the mailing list asking some questions
about register pairing, i've been experimenting several things with the help
i got back then.
Some background first: this issue is for a backend for an 8bit
microcontroller with only 8bit regs, however it has a few 16bit instructions
that only work with fixed register pairs, so it doesnt allow all
combinations of regs.
2017 Feb 02
3
Register allocator behaves differently when compiling with and without -g
Hi all,
In several of our tests, I have noticed that the register allocator
allocates to virtual registers in a different order when compiling with the
clang option -g. Before entering the register allocator, the code is
identical when compiling with and without -g (with the exception of "
DBG_VALUE" instructions). The only difference I can see is the value
assigned to the slot index
2009 Jan 19
2
[LLVMdev] HazardRecognizer and RegisterAllocation
Hi list,
in our LLVM-based-project we are writing a backend for our processor. The
architecture is a quite straight-forward RISC, but it does not have
hardware interlocks, i.e. data hazards involving memory access must be
resolved by the compiler, either by scheduling unrelated instructions or
by inserting NOOPs into the load delay slots:
----
For example, code which looks like that:
load
2009 Jan 19
0
[LLVMdev] HazardRecognizer and RegisterAllocation
On Jan 19, 2009, at 9:17 AM, Patrick Boettcher wrote:
> Hi list,
>
> in our LLVM-based-project we are writing a backend for our
> processor. The
> architecture is a quite straight-forward RISC, but it does not have
> hardware interlocks, i.e. data hazards involving memory access must be
> resolved by the compiler, either by scheduling unrelated
> instructions or
>
2010 Nov 29
0
[LLVMdev] Register Pairing
On Nov 27, 2010, at 8:56 AM, Borja Ferrer wrote:
> Some background first: this issue is for a backend for an 8bit microcontroller with only 8bit regs, however it has a few 16bit instructions that only work with fixed register pairs, so it doesnt allow all combinations of regs. This introduces some problems because if data wider than 8bits is expanded into 8bit operations the 16bit instructions
2010 Feb 15
2
creating functions question
Hi All,
I am interested in creating a function that will take x number of lm
objects and automate the comparison of each model (using anova). Here
is a simple example (the actual function will involve more than what
Im presenting but is irrelevant for the example):
# sample data:
id<-rep(1:20)
n<-c(10,20,13,22,28,12,12,36,19,12,36,75,33,121,37,14,40,16,14,20)
2017 Feb 02
2
Register allocator behaves differently when compiling with and without -g
> On Feb 2, 2017, at 8:20 AM, David Blaikie <dblaikie at gmail.com> wrote:
>
> The goal/intent is that debug info does not affect code generation. There are (many?) bugs. I think Apple folks (cc'd Adrian) may be looking at this a bit recently, not sure.
>
> The fixes aren't usually too invasive (usually involve something counting instructions where it needs to skip
2017 Feb 02
2
Register allocator behaves differently when compiling with and without -g
> On Feb 2, 2017, at 8:20 AM, David Blaikie via llvm-dev <llvm-dev at lists.llvm.org> wrote:
>
> The goal/intent is that debug info does not affect code generation. There are (many?) bugs. I think Apple folks (cc'd Adrian) may be looking at this a bit recently, not sure.
>
> The fixes aren't usually too invasive (usually involve something counting instructions where