Displaying 20 results from an estimated 3000 matches similar to: "Capturing x86 %rax in prologue to use in body"
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
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
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
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.
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
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
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 Jan 19
2
Exception handling support for a target
> From: Tim Northover via llvm-dev <llvm-dev at lists.llvm.org>
> Emitting directives in the epilogue is hard because the directives
> apply to all instructions after in program-counter order. So if you
> have an epilogue in the middle of a function and emit CFI directives
> saying the registers are back where they were then the unwinder will
> think that applies to the
2018 Jan 19
1
Exception handling support for a target
I think it's valuable to have precise / asynchronous unwind information
without adding support for non-call exceptions. Profilers and debuggers
need to be able to unwind the stack from arbitrary instruction boundaries,
but they don't need to run exception handlers. We can still declare that
outside the model. Speaking of which, barring bugs, we do support precise
unwind info on Win64.
2016 Oct 27
1
PIC and mcmodel=large on x86 doesn't use any relocations
We're at the point in our port of OpenVMS to x86 using LLVM to make choices
on mcmodel. Given OpenVMS's history, our linker will allocate static data
(ie, .data, .bss, .plt, GOT, etc.) in the bottom 32-bits of address space
(ie, 00000000.xxxxxxxx). However, we support code anywhere in the 64-bit
address space as PIC code (we do this on Itanium today using our own
code-generator and
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 Jul 22
2
[RFC] Changing X86 data layout for address spaces
Amy, when you say "implement MSVC's extensions", is that MSVC/LLVM or
are you going to add these to clang? OpenVMS has dual-sized pointers as
well and want to see them in clang. One of my engineers noticed that
address space 4 was a 32-bit pointer address space (or at least it used
to be). I haven't seen any formal discussion of that over in the cfe
dev list. I'm happy to
2018 Jan 04
1
Linker Option support for ELF
We use .note descriptors with ELF on OpenVMS. We have self-describing
entries with tags and lengths. The compiler encodes stuff for the
linker such as compiler version, compilation date-time, module name,
final severity of the compilation, etc. The linker itself then
adds/modifies the .note entries to insert linker version, link
date/time, etc. We also use .notes to record floating point
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,
2018 Jan 19
0
Exception handling support for a target
On 19 Jan 2018, at 14:48, John Reagan via llvm-dev <llvm-dev at lists.llvm.org> wrote:
>
> OpenVMS' EH model is for full asynchronous prologue/epilogue EH. We do more
> than just program-level EH, but have to deal with OS events (timers going off,
> asynch I/O completion, mailboxes filled with data, etc.) which could result in
> an unwind occurring.
>
>
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