#
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
|