Displaying 20 results from an estimated 23 matches for "larl".
2018 Sep 20
3
Comparing Clang and GCC: only clang stores updated value in each iteration.
...ew
differences, where one interesting one is that while clang stores an
incremented value in each iteration, gcc waits and just stores the final
value just once after the loop. The value is a global variable.
I wonder if this is something clang does not do per default but can be
activated, similarly to the fp-contract situation?
If not, is this a deficiency in clang? What pass should handle this?
IndVarSimplify?
I have made a reduced test case which shows the same difference between
the compilers: clang adds 1 and stores it back to 'a' in each iteration,
while gcc instead figures...
2018 Sep 20
3
Aliasing rules difference between GCC and Clang
...ang emits
two loads.
typedef struct {
double c[3][3];
} STRUCT_TY;
double e = 0.0;
STRUCT_TY *f;
int g = 0;
void h() {
int i = e;
f->c[0][i] = g;
g = e;
}
clang -O3-march=z13 :
h: # @h
# %bb.0: # %entry
larl %r1, e
ld %f0, 0(%r1) // LOAD E
lrl %r2, g
cfdbr %r0, 5, %f0 // CONVERT E
lgfr %r0, %r0 // EXTEND E
cdfbr %f0, %r2
lgrl %r2, f
sllg %r3, %r0, 3
std %f0, 0(%r3,%r2) // STOR...
2018 Sep 21
2
Aliasing rules difference between GCC and Clang
...T_TY *f;
> int g = 0;
> void h() {
> int i = e;
> f->c[0][i] = g;
> g = e;
> }
>
> clang -O3-march=z13 :
>
> h: # @h
> # %bb.0: # %entry
> larl %r1, e
> ld %f0, 0(%r1) // LOAD E
> lrl %r2, g
> cfdbr %r0, 5, %f0 // CONVERT E
> lgfr %r0, %r0 // EXTEND E
> cdfbr %f0, %r2
> lgrl %r2, f
> sllg ...
2015 Feb 25
7
virtio balloon: do not call blocking ops when !TASK_RUNNING
...ace 0000000001998c50 cccccccccccccccc cccccccccccccccc
[ 0.839720] 0000000000982134 000000000058f824 0000000000a008a8 0000000000000000
[ 0.839722] 00000000000004d9 00000000007ea992 000000000015bf8a 00000000021dbc28
[ 0.839731] Krnl Code: 000000000015bf7e: c0200033e838 larl %r2,7d8fee
000000000015bf84: c0e50028cd62 brasl %r14,675a48
#000000000015bf8a: a7f40001 brc 15,15bf8c
>000000000015bf8e: 9201a000 mvi 0(%r10),1
000000000015bf92: a7f4ffe2 brc 15,15bf56
000000000015bf96: 0707 bcr 0,%r7
0000000000...
2015 Feb 25
7
virtio balloon: do not call blocking ops when !TASK_RUNNING
...ace 0000000001998c50 cccccccccccccccc cccccccccccccccc
[ 0.839720] 0000000000982134 000000000058f824 0000000000a008a8 0000000000000000
[ 0.839722] 00000000000004d9 00000000007ea992 000000000015bf8a 00000000021dbc28
[ 0.839731] Krnl Code: 000000000015bf7e: c0200033e838 larl %r2,7d8fee
000000000015bf84: c0e50028cd62 brasl %r14,675a48
#000000000015bf8a: a7f40001 brc 15,15bf8c
>000000000015bf8e: 9201a000 mvi 0(%r10),1
000000000015bf92: a7f4ffe2 brc 15,15bf56
000000000015bf96: 0707 bcr 0,%r7
0000000000...
2015 Oct 30
0
[PATCH v4 1/6] virtio-net: Stop doing DMA from the stack
...9ce 0000000000000000 0000000000000001 00000000629e7c06
[ 33.534719] 0000000000000000 0000000000000c06 0000000000000002 000000006467f800
[ 33.534720] 0000000064673428 00000000629e7c06 00000000005869ce 00000000629e7928
[ 33.534726] Krnl Code: 00000000005869c2: c0200024ad4e larl %r2,a1c45e
00000000005869c8: c0e5ffe6d6fc brasl %r14,2617c0
#00000000005869ce: a7f40001 brc 15,5869d0
>00000000005869d2: c010003465eb larl %r1,c135a8
00000000005869d8: e31010000012 lt %r1,0(%r1)
00000000005869de: a784000a brc 8,5869f2...
2014 Aug 28
3
[PATCH v2 0/4] virtio: Clean up scatterlists and use the DMA API
...a7c8fffb lhi %r12,-5
> 000000000042161c: a7f4ff46 brc 15,4214a8
> 0000000000421620: a7f40001 brc 15,421622
> 0000000000421624: b9040021 lgr %r2,%r1
> 0000000000421628: c030001c3569 larl %r3,7a80fa
> [ 8.644106] Call Trace:
> [ 8.644110] ([<00000000004214de>] virtqueue_add_outbuf+0x1aa/0x340)
> [ 8.644114] [<000003ff80174466>] start_xmit+0x1e6/0x49c [virtio_net]
> [ 8.644119] [<000000000050571a>] dev_hard_start_xmit+0x346/0x600
> [...
2014 Aug 28
3
[PATCH v2 0/4] virtio: Clean up scatterlists and use the DMA API
...a7c8fffb lhi %r12,-5
> 000000000042161c: a7f4ff46 brc 15,4214a8
> 0000000000421620: a7f40001 brc 15,421622
> 0000000000421624: b9040021 lgr %r2,%r1
> 0000000000421628: c030001c3569 larl %r3,7a80fa
> [ 8.644106] Call Trace:
> [ 8.644110] ([<00000000004214de>] virtqueue_add_outbuf+0x1aa/0x340)
> [ 8.644114] [<000003ff80174466>] start_xmit+0x1e6/0x49c [virtio_net]
> [ 8.644119] [<000000000050571a>] dev_hard_start_xmit+0x346/0x600
> [...
2018 Sep 21
2
Comparing Clang and GCC: only clang stores updated value in each iteration.
...>> .file "testfun.i"
>> .machinemode zarch
>> .machine "z13"
>> .text
>> .align 8
>> .globl b
>> .type b, @function
>> b:
>> .LFB0:
>> .cfi_startproc
>> larl %r1,a
>> lt %r1,0(%r1)
>> je .L1
>> larl %r1,a
>> mvhi 0(%r1),0
>> .L1:
>> br %r14
>> .cfi_endproc
>> .LFE0:
>> .size b, .-b
>> .globl a
>> .data
>&...
2014 Aug 28
0
[PATCH v2 0/4] virtio: Clean up scatterlists and use the DMA API
...lhi %r12,-5
>> 000000000042161c: a7f4ff46 brc 15,4214a8
>> 0000000000421620: a7f40001 brc 15,421622
>> 0000000000421624: b9040021 lgr %r2,%r1
>> 0000000000421628: c030001c3569 larl %r3,7a80fa
>> [ 8.644106] Call Trace:
>> [ 8.644110] ([<00000000004214de>] virtqueue_add_outbuf+0x1aa/0x340)
>> [ 8.644114] [<000003ff80174466>] start_xmit+0x1e6/0x49c [virtio_net]
>> [ 8.644119] [<000000000050571a>] dev_hard_start_xmit+0x3...
2013 Apr 14
0
[LLVMdev] [RFC/PATCH][3/4] New SystemZ backend:Clang changes
...atches adds Clang support for SystemZ.
The first patch adds a new common code feature that allows platform code to
request minimum alignment of global symbols. The background for this is
that on System Z, the most efficient way to load addresses of global symbol
is the LOAD ADDRESS RELATIVE LONG (LARL) instruction. This instruction
provides PC-relative addressing, but only to *even* addresses. For this
reason, existing compilers will guarantee that global symbols are always
aligned to at least 2. [ Since symbols would otherwise already use a
default alignment based on their type, this will us...
2015 Feb 26
0
virtio balloon: do not call blocking ops when !TASK_RUNNING
...98c50 cccccccccccccccc cccccccccccccccc
> [ 0.839720] 0000000000982134 000000000058f824 0000000000a008a8 0000000000000000
> [ 0.839722] 00000000000004d9 00000000007ea992 000000000015bf8a 00000000021dbc28
> [ 0.839731] Krnl Code: 000000000015bf7e: c0200033e838 larl %r2,7d8fee
> 000000000015bf84: c0e50028cd62 brasl %r14,675a48
> #000000000015bf8a: a7f40001 brc 15,15bf8c
> >000000000015bf8e: 9201a000 mvi 0(%r10),1
> 000000000015bf92: a7f4ffe2 brc 15,15bf56
> 000000000015bf96: 0707 bcr 0,...
2015 Feb 26
0
virtio balloon: do not call blocking ops when !TASK_RUNNING
...98c50 cccccccccccccccc cccccccccccccccc
> [ 0.839720] 0000000000982134 000000000058f824 0000000000a008a8 0000000000000000
> [ 0.839722] 00000000000004d9 00000000007ea992 000000000015bf8a 00000000021dbc28
> [ 0.839731] Krnl Code: 000000000015bf7e: c0200033e838 larl %r2,7d8fee
> 000000000015bf84: c0e50028cd62 brasl %r14,675a48
> #000000000015bf8a: a7f40001 brc 15,15bf8c
> >000000000015bf8e: 9201a000 mvi 0(%r10),1
> 000000000015bf92: a7f4ffe2 brc 15,15bf56
> 000000000015bf96: 0707 bcr 0,...
2014 Aug 28
0
[PATCH v2 0/4] virtio: Clean up scatterlists and use the DMA API
...#0000000000421614: a7f40001 brc 15,421616
>0000000000421618: a7c8fffb lhi %r12,-5
000000000042161c: a7f4ff46 brc 15,4214a8
0000000000421620: a7f40001 brc 15,421622
0000000000421624: b9040021 lgr %r2,%r1
0000000000421628: c030001c3569 larl %r3,7a80fa
[ 8.644106] Call Trace:
[ 8.644110] ([<00000000004214de>] virtqueue_add_outbuf+0x1aa/0x340)
[ 8.644114] [<000003ff80174466>] start_xmit+0x1e6/0x49c [virtio_net]
[ 8.644119] [<000000000050571a>] dev_hard_start_xmit+0x346/0x600
[ 8.644123] [<000000000...
2007 Apr 18
2
[PATCH 19/21] i386 Kprobes semaphore fix
...22) & 1))
- addr &= 0xffff;
- addr += base;
- up(&child->mm->context.sem);
+ /* Check the segment exists, is within the current LDT/GDT size,
+ that kernel/user (ring 0..3) has the appropriate privilege,
+ that it's a code segment, and get the limit. */
+ asm ("larl %3,%0; lsll %3,%1"
+ : "=&r" (seg_ar), "=r" (seg_limit) : "0" (0), "rm" (seg));
+ if ((~seg_ar & 0x9800) || eip > seg_limit) {
+ if (eip_limit)
+ *eip_limit = 0;
+ eip = 1; /* So that returned eip > *eip_limit. */
+ base = 0;
+ } el...
2007 Apr 18
2
[PATCH 19/21] i386 Kprobes semaphore fix
...22) & 1))
- addr &= 0xffff;
- addr += base;
- up(&child->mm->context.sem);
+ /* Check the segment exists, is within the current LDT/GDT size,
+ that kernel/user (ring 0..3) has the appropriate privilege,
+ that it's a code segment, and get the limit. */
+ asm ("larl %3,%0; lsll %3,%1"
+ : "=&r" (seg_ar), "=r" (seg_limit) : "0" (0), "rm" (seg));
+ if ((~seg_ar & 0x9800) || eip > seg_limit) {
+ if (eip_limit)
+ *eip_limit = 0;
+ eip = 1; /* So that returned eip > *eip_limit. */
+ base = 0;
+ } el...
2014 Aug 27
6
[PATCH v2 0/4] virtio: Clean up scatterlists and use the DMA API
This fixes virtio on Xen guests as well as on any other platform
that uses virtio_pci on which physical addresses don't match bus
addresses.
This can be tested with:
virtme-run --xen xen --kimg arch/x86/boot/bzImage --console
using virtme from here:
https://git.kernel.org/cgit/utils/kernel/virtme/virtme.git
Without these patches, the guest hangs forever. With these patches,
2014 Aug 27
6
[PATCH v2 0/4] virtio: Clean up scatterlists and use the DMA API
This fixes virtio on Xen guests as well as on any other platform
that uses virtio_pci on which physical addresses don't match bus
addresses.
This can be tested with:
virtme-run --xen xen --kimg arch/x86/boot/bzImage --console
using virtme from here:
https://git.kernel.org/cgit/utils/kernel/virtme/virtme.git
Without these patches, the guest hangs forever. With these patches,
2015 Oct 30
13
[PATCH v4 0/6] virtio core DMA API conversion
This switches virtio to use the DMA API unconditionally. I'm sure
it breaks things, but it seems to work on x86 using virtio-pci, with
and without Xen, and using both the modern 1.0 variant and the
legacy variant.
This appears to work on native and Xen x86_64 using both modern and
legacy virtio-pci. It also appears to work on arm and arm64.
It definitely won't work as-is on s390x, and
2015 Oct 30
13
[PATCH v4 0/6] virtio core DMA API conversion
This switches virtio to use the DMA API unconditionally. I'm sure
it breaks things, but it seems to work on x86 using virtio-pci, with
and without Xen, and using both the modern 1.0 variant and the
legacy variant.
This appears to work on native and Xen x86_64 using both modern and
legacy virtio-pci. It also appears to work on arm and arm64.
It definitely won't work as-is on s390x, and