search for: ilp32

Displaying 20 results from an estimated 50 matches for "ilp32".

2016 May 12
2
ARM ILP32 Data model....
Hi Guys , Did clang has the support for ILP32 data model on the ARM target like aarch64 /arm64 ? Thank you ~Umesh
2019 Feb 06
2
[RFC] arm64_32: upstreaming ILP32 support for AArch64
Hi again, On Fri, 1 Feb 2019 at 19:25, Eli Friedman <efriedma at quicinc.com> wrote: > I don't know that this ends up being easier to implement overall, but the model is closer to what the hardware actually supports, and it involves fewer changes to target-independent code. I've now got something about largely working via an IR-level lowering pass (pushed to GitHub as
2010 Dec 22
4
[LLVMdev] Why IR portable?
Dear all, I cannot find the answer of this question. We all know LLVM IR is portable, but it uses ILP32 and record the target layout within the IR. target datalayout = "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64 :64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-s0:64:64-f80:128:128-n8:16:32:64" target triple = "x86_64-linux-gnu" It seems it already assigned the...
2019 Feb 01
2
[RFC] arm64_32: upstreaming ILP32 support for AArch64
> On Feb 1, 2019, at 2:25 PM, Eli Friedman via llvm-dev <llvm-dev at lists.llvm.org> wrote: > > > I was thinking of a model something like this: 32-bit pointers are addrspace 0, 64-bit pointers are addrspace 1. ISD::LOAD/STORE in addrspace 0 are not legal: they're custom-lowered to operations in addrspace 1. (An addrspacecast from 0 to 1 is just zero-extension.) At that
2019 Jan 31
2
[RFC] arm64_32: upstreaming ILP32 support for AArch64
As you may have noticed, we released a 64b S4 chip that runs an ILP32 variant of the AArch64 ABI, and now we'd like to upstream that work. I've pushed preliminary patches to https://github.com/TNorthover/llvm-project/pull/1/commits (arm64_32 branch in that repo) to accompany this RFC. The changes divide fairly neatly into three categories. First, there's...
2019 Feb 01
2
[RFC] arm64_32: upstreaming ILP32 support for AArch64
On Fri, 1 Feb 2019 at 20:08, Matt Arsenault <arsenm2 at gmail.com> wrote: > I don’t see why this would need to be an IR pass. There aren’t all that many places left using the default argument to the various pointer function that can mostly be fixed. iPTR is hopelessly broken on the tablegen side, but you wouldn’t get to that point with this. The difficulty I'm seeing is that we need
2019 Feb 01
2
[RFC] arm64_32: upstreaming ILP32 support for AArch64
On Fri, 1 Feb 2019 at 20:35, Matt Arsenault <arsenm2 at gmail.com> wrote: > Oh right, you don’t have the addrspace in the input. Input to what? Even if it's available it's wrong without a fixup pass. Still, custom override for GEP as you talk about later could overcome the problem... > I have long wanted a way for targets to take over the GEP expansion which may help you?
2010 Dec 22
2
[LLVMdev] Why IR portable?
Thanks very much for all of your answer. I was confused by definition of 'portable' by my own thinking. Now I Correct that. (ILP32 is in another project, It's my typo. Thanks) So let me make a conclusion about this. LLVM IR can be a portable language, just depending on our front-end configuration or origin language limits. Did I mistake that? Thank a lot all of you. 2010/12/22 Anton Korobeynikov <anton at korobeyni...
2019 Feb 01
2
[RFC] arm64_32: upstreaming ILP32 support for AArch64
On Fri, 1 Feb 2019 at 19:25, Eli Friedman <efriedma at quicinc.com> wrote: > > Alternate address-spaces still have just one pointer size per space as > > far as I'm aware. If that's 64-bits we get efficient CodeGen but > > loading or storing a pointer clobbers more data than it should, if > > that's 32-bits then we get poor CodeGen. > > I was
2015 Dec 15
2
How do I get ABI information to a subclass of MCELFObjectTargetWriter::GetLocType?
...mine by source examination and judicious use of a debugger there isn't a simple path from the command line and the setting of ABIname in MCTargetOptions to where an instance of a subclass of MCELFObjectTargetWriter is created. I looked at the approach taken by both Mips and X86 for implementing ILP32 and neither seems applicable. For x86 x32, there is the combination of IsELF64 == false and OSABI == EM_X86_64, but that doesn't seem applicable, as the ELF e_machine field is the same for the existing and the new ABI. For Mips N32, code and state in MCELFObjectTargetWriter seems to take care o...
2019 Feb 01
4
[EXT] [RFC] arm64_32: upstreaming ILP32 support for AArch64
Hi Eli, Thanks for the comments. On Thu, 31 Jan 2019 at 19:48, Eli Friedman <efriedma at quicinc.com> wrote: > > We teach CodeGenPrepare to sink GEPs as GEPs, and preserve the > > inbounds marker. This is the only way they can possibly be exposed to > > SDAG at the basic block level. > > Isn't addr-sink-using-gep already a thing? Yes, I'm not sure why I
2010 Dec 22
0
[LLVMdev] Why IR portable?
Hello > We all know LLVM IR is portable, but it uses ILP32 No, it doesn't use this. > It seems it already assigned their sizes mapping with types. > How can it be portable? Isn't it been written there? Everything depends on how you generated the IR. You might find this link http://llvm.org/docs/FAQ.html#platformindependent useful. -- With...
2015 Dec 17
2
How do I get ABI information to a subclass of MCELFObjectTargetWriter::GetLocType?
...its needed <MCAsmBackend subclass wanting options>::createObjectWriter(...) -> create<foo>ObjectWriter(..., added information) -> <foo>ObjectWriter::<foo>ObjectWriter(..., added information) sets added state based on constructor args, in my case the ABI, IsILP32 <foo>ObjectWriter::GetRelocType(...) use state to guide which relocations are generated I don't know if the object lifetime of MCTargetOptions allows a reference to be kept around, so the information extraction in the MCAsmBackend subclass constructor may be required. Anson On Thursda...
2010 May 06
0
[LLVMdev] Failure to compile llvm-gcc-4.2-2.7 on FreeBSD on sparc machine
...n FreeBSD is > sparc64, not sparc. There is also one more replacement sparc -> spaarc64 was > made in gcc/Makefile in llvm-gcc. The patch is incorrect and the problems you're seeing are caused by your patch, since sparc != sparc64. In LLVM sense "sparc" means "sparc with ILP32 architecture model", llvm does not support anything 64 bit in sparc world. >   size <integer_cst 0x41a08b70 type <integer_type 0x41a1a0b0 bit_size_type> > constant invariant 64> >   unit size <integer_cst 0x41a08ba0 type <integer_type 0x41a1a000 long > unsigned i...
2013 Jan 15
2
[LLVMdev] Upstreaming x32 ABI support
...for instruction bundling and alignment. Thanks to those of you who provided reviews and suggestions for improvement. The next step: The second portion that we would like to upstream is in preparation for our x86-64 Native Client changes. In particular, our ABI is dependent on the existence of an ILP32 ABI on x86-64. The conventions we rely on are the same as those developed for the x32 effort, and we propose that the community begin reviewing changes to implement the x32 ABI. It should also be noted that the x32 ABI is already supported by binutils, gcc, and glibc, and that the Native Client te...
2018 Mar 26
0
murmurhash3 test failures on big-endian systems
...3.c index 9da3d28..4848fbd 100644 --- a/src/lib/test-murmurhash3.c +++ b/src/lib/test-murmurhash3.c @@ -7,7 +7,19 @@ struct murmur3_test_vectors { const char *input; size_t len; uint32_t seed; - uint32_t result[4]; /* fits all results */ + + /* murmurhash3_128() produces a different output on ILP32 and LP64 + systems (by design). Therefore, we must use different expected + results based on what system we're on. We define both all the + time, but use the below pre-processor magic to select which + version we'll use. */ + uint8_t result_ilp32[MURMURHASH3_128_RESULTBYTES];...
2014 Dec 15
2
[LLVMdev] ABI incompatability when passing vector parameters on 32-bit x86
...-bit mode only *allows* up to 3 vector parameters per function (when not using __vectorcall), and these 3 are passed in XMM0-XMM2, which is closer to the GCC behavior. Unfortunately, it seems like there is no ABI specification to support either behavior as "correct": while the x32 ("ILP32") ABI explicitly specifies XMM0-XMM2, the latest version of the i386 psABI is too old to contain any useful information. Still, XMM0-XMM2 looks like the common choice, and I think the current clang behavior should be considered a bug. The problem is that, regardless of whether it's a bug...
2020 Mar 27
3
llvm-objdump cannot recognize mul&mulh RISC-V M Instructions
...DEFAULT_TARGET_TRIPLE="riscv32-unknown-elf" -DLLVM_ENABLE_PROJECTS="clang;lld;libc" -DLLVM_TARGETS_TO_BUILD="RISCV" ../llvm ``` Instructions to compile and dump: ``` RISCV_GCC_OPTS ?= -mcmodel=medany -static -O3 -std=gnu99 -fno-common -fno-builtin -march=rv32im -mabi=ilp32 -DMB_ADDR=0x80FFFFC --target=riscv64-unknown-elf --sysroot=/home/llvm/workspace/riscv/riscv-tc-20200220/bin/riscv64-unknown-elf --gcc-toolchain=/home/llvm/workspace/riscv/riscv-tc-20200220 RISCV_LINK_OPTS ?= -static -nostdlib -nostartfiles -lm -lgcc -T /home/llvm/workspace/HRV_IDE/common/test.ld ne...
2013 Mar 12
1
[LLVMdev] help decompiling x86 ASM to LLVM IR
...ke > > add %eax, 4 > > for `++p', but for x86_64 it would be > > add %rax, 8 > > But you can't know that without looking at the original C code. This is a bad example. A compiler compiling LP64 code would generate the above code on x86_64 for the given C code. An ILP32 compiler for x86_64 would generate something more akin to the 32-bit x86_32 code given above. It should be possible to statically convert such a simple program from one instruction set to another (provided that they're not funky instruction sets with 11 bit words). That said, converting m...
2010 May 06
3
[LLVMdev] Failure to compile llvm-gcc-4.2-2.7 on FreeBSD on sparc machine
llvm itself compiles fine. gcc frontend has the error, see below. I applied the attached patch, since the name of architecture on FreeBSD is sparc64, not sparc. There is also one more replacement sparc -> spaarc64 was made in gcc/Makefile in llvm-gcc. FreeBSD -8.0-STABLE gcc-4.5.0 sunblade 100 Yuri gmake[2]: Leaving directory `/tmp/llvm-build/2.7/llvm-gcc-4.2-objects/libdecnumber'