History log of /llvm-project/llvm/lib/CodeGen/StackMaps.cpp (Results 51 – 75 of 108)
Revision (<<< Hide revision tags) (Show revision tags >>>) Date Author Comments
# eae61389 23-Aug-2016 Richard Smith <richard-llvm@metafoo.co.uk>

Remove unused data member to unbreak -Werror builds.

llvm-svn: 279581


# 570dd009 23-Aug-2016 Philip Reames <listmail@philipreames.com>

[stackmaps] Extract out magic constants [NFCI]

This is a first step towards clarifying the exact MI semantics of stackmap's "live values".

llvm-svn: 279574


Revision tags: llvmorg-3.9.0-rc2
# c700490f 12-Aug-2016 David Majnemer <david.majnemer@gmail.com>

Use the range variant of remove_if instead of unpacking begin/end

No functionality change is intended.

llvm-svn: 278475


Revision tags: llvmorg-3.9.0-rc1
# 941a705b 28-Jul-2016 Matthias Braun <matze@braunis.de>

MachineFunction: Return reference for getFrameInfo(); NFC

getFrameInfo() never returns nullptr so we should use a reference
instead of a pointer.

llvm-svn: 277017


Revision tags: llvmorg-3.8.1, llvmorg-3.8.1-rc1
# e9134897 11-Apr-2016 Hans Wennborg <hans@hanshq.net>

Fix a couple of redundant conditional expressions (PR27283, PR28282)

llvm-svn: 265987


Revision tags: llvmorg-3.8.0, llvmorg-3.8.0-rc3, llvmorg-3.8.0-rc2, llvmorg-3.8.0-rc1, llvmorg-3.7.1, llvmorg-3.7.1-rc2, llvmorg-3.7.1-rc1, llvmorg-3.7.0, llvmorg-3.7.0-rc4, llvmorg-3.7.0-rc3, studio-1.4, llvmorg-3.7.0-rc2, llvmorg-3.7.0-rc1
# bd7287eb 16-Jul-2015 Mehdi Amini <mehdi.amini@apple.com>

Move most user of TargetMachine::getDataLayout to the Module one

Summary:
This change is part of a series of commits dedicated to have a single
DataLayout during compilation by using always the one

Move most user of TargetMachine::getDataLayout to the Module one

Summary:
This change is part of a series of commits dedicated to have a single
DataLayout during compilation by using always the one owned by the
module.

This patch is quite boring overall, except for some uglyness in
ASMPrinter which has a getDataLayout function but has some clients
that use it without a Module (llmv-dsymutil, llvm-dwarfdump), so
some methods are taking a DataLayout as parameter.

Reviewers: echristo

Subscribers: yaron.keren, rafael, llvm-commits, jholewinski

Differential Revision: http://reviews.llvm.org/D11090

From: Mehdi Amini <mehdi.amini@apple.com>
llvm-svn: 242386

show more ...


# 216ed03e 09-Jul-2015 Juergen Ributzka <juergen@apple.com>

[StackMap] Use lambdas to specify the sort and erase conditions. NFC.

llvm-svn: 241823


# aef76caf 09-Jul-2015 Juergen Ributzka <juergen@apple.com>

[StackMap] Rename variables to be more consistent. NFC.

Rename a few variables and use auto for long iterator names.

llvm-svn: 241822


# e4685a1c 09-Jul-2015 Juergen Ributzka <juergen@apple.com>

[StackMaps] Use emplace_back when possible. NFC.

llvm-svn: 241821


# d25407e9 08-Jul-2015 Juergen Ributzka <juergen@apple.com>

Run clang-format before making changes to StackMaps. NFC.

llvm-svn: 241754


Revision tags: llvmorg-3.6.2, llvmorg-3.6.2-rc1
# 13760bd1 30-May-2015 Jim Grosbach <grosbach@apple.com>

MC: Clean up MCExpr naming. NFC.

llvm-svn: 238634


# 0709a7bd 21-May-2015 Rafael Espindola <rafael.espindola@gmail.com>

Move alignment from MCSectionData to MCSection.

This starts merging MCSection and MCSectionData.

There are a few issues with the current split between MCSection and
MCSectionData.

* It optimizes t

Move alignment from MCSectionData to MCSection.

This starts merging MCSection and MCSectionData.

There are a few issues with the current split between MCSection and
MCSectionData.

* It optimizes the the not as important case. We want the production
of .o files to be really fast, but the split puts the information used
for .o emission in a separate data structure.

* The ELF/COFF/MachO hierarchy is not represented in MCSectionData,
leading to some ad-hoc ways to represent the various flags.

* It makes it harder to remember where each item is.

The attached patch starts merging the two by moving the alignment from
MCSectionData to MCSection.

Most of the patch is actually just dropping 'const', since
MCSectionData is mutable, but MCSection was not.

llvm-svn: 237936

show more ...


# 6f482000 18-May-2015 Jim Grosbach <grosbach@apple.com>

MC: Clean up method names in MCContext.

The naming was a mish-mash of old and new style. Update to be consistent
with the new. NFC.

llvm-svn: 237594


Revision tags: llvmorg-3.6.1
# a1d39ba9 12-May-2015 Sanjoy Das <sanjoy@playingwithpointers.com>

[Statepoints] Support for "patchable" statepoints.

Summary:
This change adds two new parameters to the statepoint intrinsic, `i64 id`
and `i32 num_patch_bytes`. `id` gets propagated to the ID field

[Statepoints] Support for "patchable" statepoints.

Summary:
This change adds two new parameters to the statepoint intrinsic, `i64 id`
and `i32 num_patch_bytes`. `id` gets propagated to the ID field
in the generated StackMap section. If the `num_patch_bytes` is
non-zero then the statepoint is lowered to `num_patch_bytes` bytes of
nops instead of a call (the spill and reload code remains unchanged).
A non-zero `num_patch_bytes` is useful in situations where a language
runtime requires complete control over how a call is lowered.

This change brings statepoints one step closer to patchpoints. With
some additional work (that is not part of this patch) it should be
possible to get rid of `TargetOpcode::STATEPOINT` altogether.

PlaceSafepoints generates `statepoint` wrappers with `id` set to
`0xABCDEF00` (the old default value for the ID reported in the stackmap)
and `num_patch_bytes` set to `0`. This can be made more sophisticated
later.

Reviewers: reames, pgavlin, swaroop.sridhar, AndyAyers

Subscribers: llvm-commits

Differential Revision: http://reviews.llvm.org/D9546

llvm-svn: 237214

show more ...


Revision tags: llvmorg-3.6.1-rc1
# 9ff69c8f 24-Apr-2015 Lang Hames <lhames@gmail.com>

[AsmPrinter] Make AsmPrinter's OutStreamer member a unique_ptr.

AsmPrinter owns the OutStreamer, so an owning pointer makes sense here. Using a
reference for this is crufty.

llvm-svn: 235752


# 594fa96a 20-Mar-2015 Eric Christopher <echristo@gmail.com>

Remove dead calls and function arguments dealing with TRI in StackMaps.

llvm-svn: 232847


# cef8e713 20-Mar-2015 Eric Christopher <echristo@gmail.com>

Rewrite StackMap location handling to pre-compute the dwarf register
numbers before emission.

This removes a dependency on being able to access TRI at the module
level and is similar to the DwarfExp

Rewrite StackMap location handling to pre-compute the dwarf register
numbers before emission.

This removes a dependency on being able to access TRI at the module
level and is similar to the DwarfExpression handling. I've modified
the debug support into print/dump routines that'll do the same dumping
but is now callable anywhere and if TRI isn't available will go ahead
and just print out raw register numbers.

llvm-svn: 232821

show more ...


# d83003ea 19-Mar-2015 Eric Christopher <echristo@gmail.com>

Use the cached subtarget on the MachineFunction when the AsmPrinter
will have a MachineFunction, i.e. in places other than the module
level doInitialize/doFinalize.

llvm-svn: 232783


Revision tags: llvmorg-3.5.2, llvmorg-3.5.2-rc1
# ef9e01ea 13-Mar-2015 Eric Christopher <echristo@gmail.com>

Use the cached subtarget off of the machine function.

llvm-svn: 232129


Revision tags: llvmorg-3.6.0, llvmorg-3.6.0-rc4, llvmorg-3.6.0-rc3, llvmorg-3.6.0-rc2
# 8b770651 26-Jan-2015 Eric Christopher <echristo@gmail.com>

Move DataLayout back to the TargetMachine from TargetSubtargetInfo
derived classes.

Since global data alignment, layout, and mangling is often based on the
DataLayout, move it to the TargetMachine.

Move DataLayout back to the TargetMachine from TargetSubtargetInfo
derived classes.

Since global data alignment, layout, and mangling is often based on the
DataLayout, move it to the TargetMachine. This ensures that global
data is going to be layed out and mangled consistently if the subtarget
changes on a per function basis. Prior to this all targets(*) have
had subtarget dependent code moved out and onto the TargetMachine.

*One target hasn't been migrated as part of this change: R600. The
R600 port has, as a subtarget feature, the size of pointers and
this affects global data layout. I've currently hacked in a FIXME
to enable progress, but the port needs to be updated to either pass
the 64-bitness to the TargetMachine, or fix the DataLayout to
avoid subtarget dependent features.

llvm-svn: 227113

show more ...


Revision tags: llvmorg-3.6.0-rc1
# c4ee2c51 13-Jan-2015 Hal Finkel <hfinkel@anl.gov>

[StackMaps] Use CurrentFnSymForSize

When computing the call-site offset, use AP.CurrentFnSymForSize instead of
AP.CurrentFnSym. There should be no change for other targets, but this is
necessary for

[StackMaps] Use CurrentFnSymForSize

When computing the call-site offset, use AP.CurrentFnSymForSize instead of
AP.CurrentFnSym. There should be no change for other targets, but this is
necessary for generating valid expressions for PPC64/ELF.

llvm-svn: 225807

show more ...


Revision tags: llvmorg-3.5.1, llvmorg-3.5.1-rc2, llvmorg-3.5.1-rc1
# 0365f1a3 01-Dec-2014 Philip Reames <listmail@philipreames.com>

[Statepoints 2/4] Statepoint infrastructure for garbage collection: MI & x86-64 Backend

This is the second patch in a small series. This patch contains the MachineInstruction and x86-64 backend pie

[Statepoints 2/4] Statepoint infrastructure for garbage collection: MI & x86-64 Backend

This is the second patch in a small series. This patch contains the MachineInstruction and x86-64 backend pieces required to lower Statepoints. It does not include the code to actually generate the STATEPOINT machine instruction and as a result, the entire patch is currently dead code. I will be submitting the SelectionDAG parts within the next 24-48 hours. Since those pieces are by far the most complicated, I wanted to minimize the size of that patch. That patch will include the tests which exercise the functionality in this patch. The entire series can be seen as one combined whole in http://reviews.llvm.org/D5683.

The STATEPOINT psuedo node is generated after all gc values are explicitly spilled to stack slots. The purpose of this node is to wrap an actual call instruction while recording the spill locations of the meta arguments used for garbage collection and other purposes. The STATEPOINT is modeled as modifing all of those locations to prevent backend optimizations from forwarding the value from before the STATEPOINT to after the STATEPOINT. (Doing so would break relocation semantics for collectors which wish to relocate roots.)

The implementation of STATEPOINT is closely modeled on PATCHPOINT. Eventually, much of the code in this patch will be removed. The long term plan is to merge the functionality provided by statepoints and patchpoints. Merging their implementations in the backend is likely to be a good starting point.

Reviewed by: atrick, ributzka

llvm-svn: 223085

show more ...


# e839965f 04-Nov-2014 Sanjoy Das <sanjoy@playingwithpointers.com>

The patchpoint lowering logic would crash with live constants equal to
the tombstone or empty keys of a DenseMap<int64_t, T>. This patch
fixes the issue (and adds a tests case).

llvm-svn: 221214


# 429c9cae 04-Nov-2014 Sanjoy Das <sanjoy@playingwithpointers.com>

Change logic in StackMaps::recordStackMapOpers to use the isInt<32>
predicate instead of bitwise operations.

This is not a functional change.

llvm-svn: 221209


# c6cc58e7 04-Oct-2014 Benjamin Kramer <benny.kra@googlemail.com>

Remove unnecessary copying or replace it with moves in a bunch of places.

NFC.

llvm-svn: 219061


12345