Commit Graph

9981 Commits

Author SHA1 Message Date
Andrea Di Biagio 736b8af9cf [llvm-mca] Correctly update the resource strategy for processor resources with multiple units.
When looking at the tests committed by Roman at r346587, I noticed that numbers
reported by the resource pressure for PdAGU01 were wrong.

In particular, according to the aut-generated CHECK lines in tests
memcpy-like-test.s and store-throughput.s, resource pressure for PdAGU01
was not uniformly distributed among the two AGEN pipes.

It turns out that the reason why pressure was not correctly distributed, was
because the "resource selection strategy" object associated with PdAGU01 was not
correctly updated on the event of AGEN pipe used.
As a result, llvm-mca was not simulating a round-robin pipeline allocation for
PdAGU01. Instead, PdAGU1 was always prioritized over PdAGU0.

This patch fixes the issue; now processor resource strategy objects for
resources declaring multiple units, are correctly notified in the event of
"resource used".


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@346650 91177308-0d34-0410-b5e6-96231b3b80d8
2018-11-12 13:09:39 +00:00
Philip Pfaffe d3733c222c [newpm] Fix r346645: Missing consume of the Error return by the pipeline parser
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@346649 91177308-0d34-0410-b5e6-96231b3b80d8
2018-11-12 12:27:58 +00:00
Philip Pfaffe 0c20a4d744 Add an OptimizerLast EP
Summary:
It turns out that we need an OptimizerLast PassBuilder extension point
after all. I missed the relevance of this EP the first time. By legacy PM magic,
function passes added at this EP get added to the last _Function_ PM, which is a
feature we lost when dropping this EP for the new PM.

A key difference between this and the legacy PassManager's OptimizerLast
callback is that this extension point is not triggered at O0. Extensions
to the O0 pipeline should append their passes to the end of the overall
pipeline.

Differential Revision: https://reviews.llvm.org/D54374

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@346645 91177308-0d34-0410-b5e6-96231b3b80d8
2018-11-12 11:17:07 +00:00
Jonas Devlieghere 21b58634f0 [llvm-nm] Use WithColor for error reporting
Use helpers from Support/WithError.h to print errors.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@346624 91177308-0d34-0410-b5e6-96231b3b80d8
2018-11-11 22:12:21 +00:00
Jonas Devlieghere 8e8485eda3 [llvm-objdump] Use WithColor for error reporting
Use helpers from Support/WithError.h to print errors.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@346623 91177308-0d34-0410-b5e6-96231b3b80d8
2018-11-11 22:12:04 +00:00
Jonas Devlieghere d96e13f9ef [llvm-undname] Use WithColor for error reporting
Use helpers from Support/WithError.h to print errors.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@346622 91177308-0d34-0410-b5e6-96231b3b80d8
2018-11-11 22:11:47 +00:00
Fangrui Song b87342a824 [DWARF] Change pubnames to use DWARFSection instead of StringRef
Summary: The debug_info_offset values in .debug_{,gnu_}pub{name,types} may be relocated. Change it to DWARFSection so that we can get relocated values.

Reviewers: ruiu, dblaikie, grimar, JDevlieghere

Reviewed By: JDevlieghere

Subscribers: aprantl, JDevlieghere, llvm-commits

Differential Revision: https://reviews.llvm.org/D54375

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@346615 91177308-0d34-0410-b5e6-96231b3b80d8
2018-11-11 18:57:28 +00:00
Kristina Brooks 11c0888e5d [llvm-objdump] Add symbol 'O' for object data
Improve compatibility with GNU objdump by showing `O` next to
global symbol names, instead of a blank space.

Patch by Higuoxing (Xing).

Reviewers: MaskRay

Differential Revision: https://reviews.llvm.org/D54380



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@346610 91177308-0d34-0410-b5e6-96231b3b80d8
2018-11-11 17:47:13 +00:00
Jonas Devlieghere 686dfe3676 [Support] Make error banner optional in logAllUnhandledErrors
In a lot of places an empty string was passed as the ErrorBanner to
logAllUnhandledErrors. This patch makes that argument optional to
simplify the call sites.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@346604 91177308-0d34-0410-b5e6-96231b3b80d8
2018-11-11 01:46:03 +00:00
Jonas Devlieghere bb2ce32a5b [llvm-cxxdump] Use error reporting helpers from support
This patch makes llvm-cxxdump use the error reporting helpers from
Support/WithColor.h

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@346602 91177308-0d34-0410-b5e6-96231b3b80d8
2018-11-11 01:24:02 +00:00
Andrea Di Biagio d09d3d9eec [llvm-mca] Account for buffered resources when analyzing "Super" resources.
This was noticed when working on PR3946.
By construction, a group cannot be used as a "Super" resource. That constraint
is enforced by method `SubtargetEmitter::ExpandProcResource()`.

A Super resource S can be part of a group G. However, method
`SubtargetEmitter::ExpandProcResource()` would not update the number of
consumed resource cycles in G based on S.
In practice, this is perfectly fine because the resource usage is correctly
computed for processor resource units. However, llvm-mca should still check if G
is a buffered resource.
Before this patch, llvm-mca didn't correctly check if S was part of a group that
defines a buffer. So, the instruction descriptor was not correctly set.

For now, the semantic change introduced by this patch doesn't affect any of the
upstream scheduling models. However, it will allow to make some progress on PR3946.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@346545 91177308-0d34-0410-b5e6-96231b3b80d8
2018-11-09 19:30:20 +00:00
Greg Clayton 6517c35cb7 Add total function byte size and inline function byte size to "llvm-dwarfdump --statistics"
Differential Revision: https://reviews.llvm.org/D54217



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@346531 91177308-0d34-0410-b5e6-96231b3b80d8
2018-11-09 18:10:02 +00:00
Jordan Rupprecht 1070226071 [llvm-strings] Fix whitespaces to match strings output.
Summary:
The current implementation prepends a space on every line, making it difficult to compare against GNU strings.

The space appears to have come from handling --radix in rL292707. The space is for making sure there's a space between the radix and the value; however the space is still emitted even when there is no radix. This change fixes that so the space is only emitted when there is a radix.

Reviewers: jhenderson

Reviewed By: jhenderson

Subscribers: llvm-commits, compnerd

Differential Revision: https://reviews.llvm.org/D54238

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@346529 91177308-0d34-0410-b5e6-96231b3b80d8
2018-11-09 18:03:21 +00:00
Max Moroz 8af59ae970 [llvm-cov] Remove "default:" label in the switch covering all enum values.
Summary:
Fixing the build breakage:
http://lab.llvm.org:8011/builders/lld-x86_64-darwin13/builds/27309

Reviewers: vsk, allevato, Dor1s

Reviewed By: Dor1s

Subscribers: llvm-commits

Differential Revision: https://reviews.llvm.org/D54323

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@346514 91177308-0d34-0410-b5e6-96231b3b80d8
2018-11-09 16:44:36 +00:00
Max Moroz fcdc267f22 [llvm-cov] Add lcov tracefile export format.
Summary:
lcov tracefiles are used by various coverage reporting tools and build
systems (e.g., Bazel). It is a simple text-based format to parse and
more convenient to use than the JSON export format, which needs
additional processing to map regions/segments back to line numbers.

It's a little unfortunate that "text" format is now overloaded to refer
specifically to JSON for export, but I wanted to avoid making any
breaking changes to the UI of the llvm-cov tool at this time.

Patch by Tony Allevato (@allevato).

Reviewers: Dor1s, vsk

Reviewed By: Dor1s, vsk

Subscribers: mgorny, llvm-commits

Differential Revision: https://reviews.llvm.org/D54266

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@346506 91177308-0d34-0410-b5e6-96231b3b80d8
2018-11-09 16:10:44 +00:00
Clement Courbet b4abfc2b26 [llvm-exegesis][NFC] Add a way to declare the default counter binding for unbound CPUs for a target.
Summary:
This simplifies the code and moves everything to tablegen for consistency. This
also prepares the ground for adding issue counters.

Reviewers: gchatelet, john.brawn, jsji

Subscribers: nemanjai, mgorny, javed.absar, kbarton, tschuett, llvm-commits

Differential Revision: https://reviews.llvm.org/D54297

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@346489 91177308-0d34-0410-b5e6-96231b3b80d8
2018-11-09 13:15:32 +00:00
Andrea Di Biagio 25761c3f2c [llvm-mca] Use a small vector for instructions in the EntryStage.
Use a simple SmallVector to track the lifetime of simulated instructions.
An ordered map was not needed because instructions are already picked in program
order. It is also much faster if we avoid searching for already retired
instructions at the end of every cycle.
The new policy only triggers a "garbage collection" when the number of retired
instructions becomes significantly big when compared with the total size of the
vector.

While working on this, I noticed that instructions were correctly retired, but
their internal state was not updated (i.e. there was no transition from the
EXECUTED state, to the RETIRED state). While this was not a problem for the
views, it prevented the EntryStage from correctly garbage collecting already
retired instructions. That was a bad oversight, and this patch fixes it.

The observed speedup on a debug build of llvm-mca after this patch is ~6%.
On a release build of llvm-mca, the observed speedup is ~%15%.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@346487 91177308-0d34-0410-b5e6-96231b3b80d8
2018-11-09 12:29:57 +00:00
Petr Hosek b9dd8a3b40 [llvm-rc] Support joined or separate spelling for /fo flag
CMake invokes rc using the joined spelling which appears to be supported
by Microsoft's rc implementation, so we should support it as well.

Differential Revision: https://reviews.llvm.org/D54191

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@346470 91177308-0d34-0410-b5e6-96231b3b80d8
2018-11-09 03:16:53 +00:00
Petr Hosek 8c1c568cf5 [llvm-rc] Support absolute filenames in manifests
CMake generate manifests that contain absolute filenames and these
currently result in assertion error. This change ensures that we
handle these correctly.

Differential Revision: https://reviews.llvm.org/D54194

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@346450 91177308-0d34-0410-b5e6-96231b3b80d8
2018-11-08 23:45:00 +00:00
Matt Davis 09aba6bcf0 [llvm-mca] Partially revert r346417.
Restored the llvm:: namespace qualifier on make_unique.
This removes the ambiguity with make_unique.  


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@346424 91177308-0d34-0410-b5e6-96231b3b80d8
2018-11-08 18:08:43 +00:00
Andrea Di Biagio b665487bbc [llvm-mca] PR39261: Rename FetchStage to EntryStage.
This fixes PR39261.

FetchStage is a misnomer. It causes confusion with the frontend fetch stage,
which we don't currently simulate.  I decided to rename it into EntryStage
mainly because this is meant to be a "source" stage for all pipelines.

Differential Revision: https://reviews.llvm.org/D54268


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@346419 91177308-0d34-0410-b5e6-96231b3b80d8
2018-11-08 17:49:30 +00:00
Matt Davis c6216b01cd [llvm-mca] Remove unneeded namespace qualifier. NFC.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@346417 91177308-0d34-0410-b5e6-96231b3b80d8
2018-11-08 17:32:45 +00:00
Adrian Prantl a3a30c008d [dsymutil] Copy the LC_BUILD_VERSION load command into the companion binary.
LC_BUILD_VERSION contains platform information that is useful for LLDB
to match up dSYM bundles with binaries. This patch copies the load
command over into the dSYM.

rdar://problem/44145175
rdar://problem/45883463

Differential Revision: https://reviews.llvm.org/D54233

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@346412 91177308-0d34-0410-b5e6-96231b3b80d8
2018-11-08 16:54:59 +00:00
Jinsong Ji 0398c778a4 [PowerPC][llvm-exegesis] Add a PowerPC target
This is patch to add PowerPC target to llvm-exegesis.
The target does just enough to be able to run llvm-exegesis in latency mode for at least some opcodes.

Differential Revision: https://reviews.llvm.org/D54185



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@346411 91177308-0d34-0410-b5e6-96231b3b80d8
2018-11-08 16:51:42 +00:00
Clement Courbet 16cd808d48 [llvm-exegesis][NFC] Add missing header guard + cosmetics.
Reviewers: gchatelet

Reviewed By: gchatelet

Subscribers: tschuett, llvm-commits

Differential Revision: https://reviews.llvm.org/D54252

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@346400 91177308-0d34-0410-b5e6-96231b3b80d8
2018-11-08 12:37:56 +00:00
Clement Courbet c3e506bd69 Revert "[llvm-exegesis] Add a snippet generator to generate snippets to compute ROB sizes."
This reverts accidental commit rL346394.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@346398 91177308-0d34-0410-b5e6-96231b3b80d8
2018-11-08 12:09:45 +00:00
Clement Courbet d5324f4da3 [llvm-exegesis] Add a snippet generator to generate snippets to compute ROB sizes.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@346394 91177308-0d34-0410-b5e6-96231b3b80d8
2018-11-08 11:45:14 +00:00
Jordan Rupprecht 8e906179e3 [llvm-readobj] Implement LLVM style printer for --notes
Summary:
Port the GNU style printNotes method to the LLVMStyle subclass.

This is basically just a heavy refactor so that the note parsing/formatting logic from the GNUStyle::printNotes can be shared with LLVMStyle::printNotes.

Reviewers: MaskRay

Reviewed By: MaskRay

Subscribers: dschuff, fedor.sergeev, llvm-commits

Differential Revision: https://reviews.llvm.org/D54220

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@346371 91177308-0d34-0410-b5e6-96231b3b80d8
2018-11-07 23:53:50 +00:00
Matt Davis 1969d2694f [llvm-mca] Move the AssembleInput logic into its own class.
Summary:
This patch introduces a CodeRegionGenerator class which is responsible for parsing some type of input and creating a 'CodeRegions' instance for use by llvm-mca.  In the future, we will also have a CodeRegionGenerator subclass for converting an input object file into CodeRegions.  For now, we only have the subclass for converting input assembly into CodeRegions.

This is mostly a NFC patch, as the logic remains close to the original, but now encapsulated in its own class and moved outside of llvm-mca.cpp.

Reviewers: andreadb, courbet, RKSimon

Reviewed By: andreadb

Subscribers: mgorny, tschuett, gbedwell, llvm-commits

Differential Revision: https://reviews.llvm.org/D54179

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@346344 91177308-0d34-0410-b5e6-96231b3b80d8
2018-11-07 19:20:04 +00:00
Petr Hosek 0bb3a2c11f [llvm-mt] Accept and ignore notify_update flag
This flag is being set by CMake when invoking mt.

Differential Revision: https://reviews.llvm.org/D54196

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@346341 91177308-0d34-0410-b5e6-96231b3b80d8
2018-11-07 18:36:50 +00:00
Clement Courbet 7fe3470de0 [llvm-exegesis] Remove superfluous move.
/Users/buildslave/as-bldslv9_new/lld-x86_64-darwin13/llvm.src/tools/llvm-exegesis/lib/X86/Target.cpp:155:12: error: moving a local object in a return statement prevents copy elision [-Werror,-Wpessimizing-move]
    return std::move(Error);
           ^
/Users/buildslave/as-bldslv9_new/lld-x86_64-darwin13/llvm.src/tools/llvm-exegesis/lib/X86/Target.cpp:155:12: note: remove std::move call here
    return std::move(Error);
           ^~~~~~~~~~     ~

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@346333 91177308-0d34-0410-b5e6-96231b3b80d8
2018-11-07 16:52:50 +00:00
Clement Courbet 523f4005eb [llvm-exegesis] Correclty handle all X86 memory encoding formats.
Summary:
Add unit tests to check the support for each supported format to avoid
regressions such as the one in PR36906.

Reviewers: gchatelet

Subscribers: tschuett, lebedev.ri, llvm-commits

Differential Revision: https://reviews.llvm.org/D54144

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@346330 91177308-0d34-0410-b5e6-96231b3b80d8
2018-11-07 16:14:55 +00:00
Clement Courbet caeba011f7 [llvm-exegesis] Increasing wrapping limit.
Summary: Fixes PR39097.

Reviewers: gchatelet

Subscribers: llvm-commits, tschuett

Differential Revision: https://reviews.llvm.org/D54151

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@346328 91177308-0d34-0410-b5e6-96231b3b80d8
2018-11-07 15:46:45 +00:00
Fangrui Song 63cd3e5cd3 [llvm-strip] Check "strip" with StringRef::contains instead of ends_with
Summary: If argv[0] is version suffixed, e.g. llvm-strip-7, this will still work.

Reviewers: rupprecht, jhenderson, alexshap, jakehehrlich

Reviewed By: rupprecht

Subscribers: alexshap, jakehehrlich, llvm-commits

Differential Revision: https://reviews.llvm.org/D54193

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@346292 91177308-0d34-0410-b5e6-96231b3b80d8
2018-11-07 03:02:11 +00:00
Clement Courbet 302c74f88b [llvm-exegesis] Ignore X86 pseudo instructions.
Summary: They do not lower to actual MCInsts and have no scheduling info.

Reviewers: gchatelet

Subscribers: llvm-commits, tschuett

Differential Revision: https://reviews.llvm.org/D54147

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@346227 91177308-0d34-0410-b5e6-96231b3b80d8
2018-11-06 14:11:58 +00:00
Dean Michael Berris b92b0b860c [XRay] Update XRayRecord to support Custom/Typed Events
Summary:
This change cuts across LLVM and compiler-rt to add support for
rendering custom events in the XRayRecord type, to allow for including
user-provided annotations in the output YAML (as raw bytes).

This work enables us to add custom event and typed event records into
the `llvm::xray::Trace` type for user-provided events. This can then be
programmatically handled through the C++ API and can be included in some
of the tooling as well. For now we support printing the raw data we
encounter in the custom events in the converted output.

Future work will allow us to start interpreting these custom and typed
events through a yet-to-be-defined API for extending the trace analysis
library.

Reviewers: mboerger

Subscribers: hiraditya, llvm-commits

Differential Revision: https://reviews.llvm.org/D54139

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@346214 91177308-0d34-0410-b5e6-96231b3b80d8
2018-11-06 08:51:37 +00:00
Robert Widmann 4fefaaea5a [LLVM-C] Improve Intrinsics Bindings
Summary:
Improve the intrinsic bindings with operations for

- Retrieving and automatically inserting the declaration of an intrinsic by ID
- Retrieving the name of a non-overloaded intrinsic by ID
- Retrieving the name of an overloaded intrinsic by ID and overloaded parameter types

Improve the echo test to copy non-overloaded intrinsics by ID.

Reviewers: whitequark, deadalnix

Reviewed By: whitequark

Subscribers: llvm-commits

Differential Revision: https://reviews.llvm.org/D53626

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@346195 91177308-0d34-0410-b5e6-96231b3b80d8
2018-11-06 01:38:14 +00:00
Matthias Braun 51c2c7a40e MachineModuleInfo: Store more specific reference to LLVMTargetMachine; NFC
MachineModuleInfo can only be used in code using lib/CodeGen, hence we
can keep a more specific reference to LLVMTargetMachine rather than just
TargetMachine around.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@346182 91177308-0d34-0410-b5e6-96231b3b80d8
2018-11-05 23:49:13 +00:00
Konstantin Zhuravlyov 7829a6dfd5 AMDGPU: Add sram-ecc feature
Differential Revision: https://reviews.llvm.org/D53222


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@346177 91177308-0d34-0410-b5e6-96231b3b80d8
2018-11-05 22:44:19 +00:00
Alexandre Ganea 4a52ea2ea2 [COFF][LLD] Add link support for Microsoft precompiled headers OBJs
This change allows for link-time merging of debugging information from
Microsoft precompiled types OBJs compiled with cl.exe /Z7 /Yc and /Yu.

This fixes llvm.org/PR34278

Differential Revision: https://reviews.llvm.org/D45213


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@346154 91177308-0d34-0410-b5e6-96231b3b80d8
2018-11-05 19:20:47 +00:00
Francis Visoiu Mistrih 040e4d75d3 [CMake] Expose opt-remark tooling through libOptRemarks.dylib
* Create an install target for it
* Add it under tools/opt-remarks
* Add an export file for the dylib
* Install the llvm-c/OptRemarks.h header
* Add an API to query its version

rdar://45458839

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@346127 91177308-0d34-0410-b5e6-96231b3b80d8
2018-11-05 11:57:44 +00:00
Eli Friedman 3497542625 [AArch64] [Windows] Misc fixes for llvm-readobj -unwind.
Use getImageBase() helper to compute the image base. Fix various
offsets/addresses/masks so they're actually correct.

This allows decoding unwind info from DLLs, and unwind info from object
files containing multiple functions.

Differential Revision: https://reviews.llvm.org/D54015



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@346036 91177308-0d34-0410-b5e6-96231b3b80d8
2018-11-02 19:59:08 +00:00
Leonard Mosescu 437cbaffff Fix a few small issues in llvm-pdbutil
Running "llvm-pdbutil dump -all" on linux (using the native PDB reader),
over a few PDBs pulled from the Microsoft public symbol store uncovered 
a few small issues:

- stripped PDBs might not have the strings stream (/names)
- stripped PDBs might not have the "module info" stream

Differential Revision: https://reviews.llvm.org/D54006



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@346010 91177308-0d34-0410-b5e6-96231b3b80d8
2018-11-02 18:00:37 +00:00
Mandeep Singh Grang badd06e25e [gold-plugin] Fix a bunch of build warnings
Phabricator: https://reviews.llvm.org/D53997

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@345910 91177308-0d34-0410-b5e6-96231b3b80d8
2018-11-01 23:34:12 +00:00
Jordan Rupprecht 78ba7a6ff0 [llvm-objcopy/strip] [NFC] Clean up tablegen opts (clang-format + reorganizing things).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@345896 91177308-0d34-0410-b5e6-96231b3b80d8
2018-11-01 21:38:14 +00:00
Reid Kleckner 1e74971827 Silence -Wimplicit-fallthrough in gold plugin
Fatal errors are likely fatal, but in case they aren't, return instead
of printing a second warning.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@345894 91177308-0d34-0410-b5e6-96231b3b80d8
2018-11-01 21:24:33 +00:00
Andrea Di Biagio daf3fe16b9 [llvm-mca] Add extra counters for move elimination in view RegisterFileStatistics.
This patch teaches view RegisterFileStatistics how to report events for
optimizable register moves.

For each processor register file, view RegisterFileStatistics reports the
following extra information:
 - Number of optimizable register moves
 - Number of register moves eliminated
 - Number of zero moves (i.e. register moves that propagate a zero)
 - Max Number of moves eliminated per cycle.

Differential Revision: https://reviews.llvm.org/D53976


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@345865 91177308-0d34-0410-b5e6-96231b3b80d8
2018-11-01 18:04:39 +00:00
Jordan Rupprecht 9a78ad0d49 [llvm-strip] Support --keep and --strip-all-gnu from llvm-objcopy
Summary: Add --keep and --strip-all-gnu from llvm-objcopy into llvm-strip.

Reviewers: jakehehrlich, jhenderson, alexshap

Reviewed By: jhenderson, alexshap

Subscribers: llvm-commits

Differential Revision: https://reviews.llvm.org/D53954

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@345861 91177308-0d34-0410-b5e6-96231b3b80d8
2018-11-01 17:48:46 +00:00
Jordan Rupprecht 167fb18752 [llvm-objcopy] Support --{enable,disable}-deterministic-archives
Summary: ar and objcopy/strip all support configuring whether archives are written deterministically (timestamps/UIDs/GIDs/etc zero'd). This has been ported to llvm-ar (the U/D modifiers) but not yet to llvm-objcopy/strip.

Reviewers: jakehehrlich, jhenderson, alexshap

Reviewed By: jhenderson

Subscribers: ruiu, mgrang, llvm-commits

Differential Revision: https://reviews.llvm.org/D53913

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@345859 91177308-0d34-0410-b5e6-96231b3b80d8
2018-11-01 17:36:37 +00:00
Jordan Rupprecht 1033d5958c [llvm-objcopy] Don't apply --localize flags to common symbols
Summary:
--localize-symbol and --localize-hidden will currently localize common symbols. GNU objcopy will not localize these symbols even when explicitly requested, which seems reasonable; common symbols should always be global so they can be merged during linking.

See PR39461

Reviewers: jakehehrlich, jhenderson, alexshap, MaskRay, espindola

Reviewed By: jakehehrlich, jhenderson, alexshap, MaskRay

Subscribers: emaste, arichardson, alexshap, MaskRay, llvm-commits

Differential Revision: https://reviews.llvm.org/D53782

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@345856 91177308-0d34-0410-b5e6-96231b3b80d8
2018-11-01 17:26:36 +00:00