Displaying 20 results from an estimated 10000 matches similar to: "[RFC] Changing X86 data layout for address spaces"
2019 Jul 23
2
[RFC] Changing X86 data layout for address spaces
Please don't bake in knowledge *in LLVM* of a address space unless
there's a strong need. *Clang* can assign whatever meaning to an AS it
wishes, and their properties are configurable via data layout
configuration.
The standards of review are much lower for a Clang only change as it can
be revised arbitrarily without breaking other uses of LLVM. Building in
first class knowledge to
2019 Jul 28
2
[RFC] Changing X86 data layout for address spaces
That is basically what we do today to provide mixed sized pointers with
our legacy frontends. They generate IR to our old code generator which
has ADDR32 and ADDR64 datatypes. We use a 64-bit address data layout
and then typecast the 32-bit forms to/from the underlying 64-bit
addresses. I have been warned that such rampant typecasting might
interfere with certain optimizations or TBAA data. We
2019 Jul 31
3
[RFC] Changing X86 data layout for address spaces
Please review the properties of an address space which are configurable
via the data layout. For example, bitwidth is one of those parameters.
If that parameter space covers your needs, then you do not need LLVM
side support.
Philip
On 7/30/19 2:59 PM, Amy Huang wrote:
> Thanks for the info--
> It seems like the way to do this is for clang to use address spaces to
> represent
2019 Jul 31
3
[RFC] Changing X86 data layout for address spaces
Looks like I made my point in an accidentally really confusing way. Let
me try again w/Matt's correction in mind.
I want to make sure that the middle end optimizer code is *driven by the
data layout*. I am not trying to express an opinion on how that data
layout is populated (frontend, backedge, black magic, what have you). I
just want to make sure that we don't end with the middle
2015 Jan 14
6
[LLVMdev] Introduction for new consumer of LLVM
Hello,
I'd like to introduce myself, my company, and our upcoming use of LLVM.
My name is John Reagan. I've been working on compilers and assemblers since
1983 (yes, 31 years). Most of that time was spent on compilers for VAX/VMS
(later renamed to OpenVMS), then OpenVMS on Alpha, and OpenVMS on Itanium.
I've also worked with the HP NonStop platform and was directly involved
2017 Dec 14
2
x86-64 unwind additions
Hi all,
We're at the point in our port of OpenVMS to x86-64 that we're working
on the unwind code. The current ABI and the current codebase doesn't
have enough support for true asynchronous unwinding from any point (most
notably in the prologue/epilogue) in the code that OpenVMS needs. We're
working on a set of changes to the compact unwind information to handle
the additional
2019 Jun 13
2
[RFC] Coding Standards: "prefer `int` for, regular arithmetic, use `unsigned` only for bitmask and when you, intend to rely on wrapping behavior."
Yes. We currently build LLVM 3.4.2 on our OpenVMS Itanium box with an
older EDG/Intel C++03 compiler to create legacy cross-compilers to our
OpenVMS x86 box (well, VirtualBox). We do have a few tweaks to the
relocations to access static data always through the GOT (including
CodeGen's static data). Our linker sees references to code (which might
be in 64-bit space) and creates trampolines
2019 Jun 14
2
[RFC] Coding Standards: "prefer `int` for, regular arithmetic, use `unsigned` only for bitmask and when you, intend to rely on wrapping behavior."
> -----Original Message-----
> From: llvm-dev [mailto:llvm-dev-bounces at lists.llvm.org] On Behalf Of JF
> Bastien via llvm-dev
> Sent: Thursday, June 13, 2019 12:25 PM
> To: John Reagan
> Cc: llvm-dev at lists.llvm.org
> Subject: Re: [llvm-dev] [RFC] Coding Standards: "prefer `int` for, regular
> arithmetic, use `unsigned` only for bitmask and when you, intend to
2016 May 02
5
[cfe-dev] Fwd: Raising CMake minimum version to 3.4.3
As one of the OS' without current CMake support, I'm closely watching this discussion. We currently have LLVM 3.4.2 hosted on OpenVMS Itanium (as a host only, x86 target) using configure/make with little hassle. We plan to port CMake to OpenVMS, but that has been trickier than you'd think (others have tried, I haven't found anybody who has done it). Looks like I'll want to
2016 May 03
2
[cfe-dev] Fwd: Raising CMake minimum version to 3.4.3
I'm not sure if they are doing an x86 to IA64 cross compile, but in
any event I'm going to guess they may need an ancient version to avoid
any C++11 dependencies. In terms of IA64 compilers you have afaik 3
choices HP compiler, Open64 and Intel? (Does gcc still support it and
how up-to-date or EOL is the Intel compiler IA64 support?)
I really hope nobody decides not to move to a more
2016 May 19
4
Automake Assembler Assumptions with LLVM-MC
On Wed, May 18, 2016 at 01:10:50PM +0000, Daniel Sanders via llvm-dev wrote:
> It's my understanding that llvm-mc is intended to be a testing tool
> for LLVM developers rather than an assembler for end users. Users
> should be assembling with clang.
Not all LLVM users are clang users. For example, we're using LLVM to build
OpenVMS cross-compilers to x86 for our porting effort.
2015 Nov 09
4
[RFC] Deprecating autoconf: Let's do it!
As somebody who's currently hosting LLVM on a platform (OpenVMS Itanium) that has configure but not a working CMake (we're working to fix that but there are some tricky issues), I would appreciate if you didn't scrub the existence of configure from the source or the documentation. Perhaps keep pointers to the older pages and link to them from the downloads pages or something with an
2018 Mar 14
2
Capturing x86 %rax in prologue to use in body
As part of our OpenVMS-specific changes, we're adding an arg-count to
all of our calls.
We've done this as part of callLowering to put the # of slots used into
%ah and leaving %al to hold the standard info about vector registers.
That part is working.
However, we're struggling somewhat on the code in the prologue to
capture the %ah value to then be obtained by our
2020 May 08
2
How to force unused external routine declaration into object
I had thought about "used", but not aware of the @llvm.used, et al.
I wrote some test programs with __attribute__((used)) but that felt like
something you'd put on function definitions to force code to be
generated regardless.
In the worst case, I'll do some metadata hack (I've ready had to do that
for BLISS' GLOBAL BIND feature).
Thanks for the response. I'll let
2016 Oct 11
2
Port to other Operating Systems
As part of our port of OpenVMS to x86-64, we are using LLVM with our own frontends on OpenVMS Itanium. We are writing a converter between our old backend's IR and the LLVM IR. We can cross-compile (hosted on OpenVMS Itanium) and link/execute on x86-64 CentOS. At present, we pass over 88% of our C test suite.
Porting starts with being able to compile the code. Since we are stuck with a
2019 Jul 31
2
[RFC] Changing X86 data layout for address spaces
I really hate to dip my toe in here, because it will only reveal my total ignorance, but….
Do the "usual rules around addrspacecast" say when different address spaces can alias? I remember somebody using address spaces to represent something like special off-to-the-side device memory, which obviously could never alias main memory, whereas other uses like the 32/64-bit thing will
2016 Oct 11
4
Port to other Operating Systems
Hello all,
Pardon me if this has already been covered elsewhere, however I have not been able to find such documentation. Is there a consolidated set of documentation that clearly explains what's necessary to port LLVM to other OSes & how to add support for building executables (& libraries) for those OSes? I'm searching through the source in an attempt to understand what needs to
2018 Mar 14
0
Capturing x86 %rax in prologue to use in body
Hi John,
On 14 March 2018 at 18:28, John Reagan via llvm-dev
<llvm-dev at lists.llvm.org> wrote:
> However, we're struggling somewhat on the code in the prologue to
> capture the %ah value to then be obtained by our "arg_count" compiler
> builtin. We found where the 1st parameter is put into a virtual
> register in the event that it has to be passed back in %rax
2020 May 07
2
How to force unused external routine declaration into object
I'm defining an external function in the IR that has no uses at all. No
calls, no address taken, nada.
Such an unused declaration seems to be just dropped on the floor as not
needed. Seems reasonable in most cases.
However, one of my OpenVMS compilers (BLISS) has a language rule that
expects such definitions to get into the ELF symbol table as a way to
compel the linker to include certain
2019 Mar 29
2
Proposal for O1/Og Optimization and Code Generation Pipeline
When I worked on the HPE NonStop compilers for x86 (we used Open64, not
LLVM), we adjusted our -O1 to make sure the source display didn't
"bounce around" based on feedback from users. We disabled any
optimization that would move things across statement boundaries. We
also disabled/de-tuned dead store since our DWARF location list support
was pretty basic and with the removed store,