summaryrefslogtreecommitdiffstats
path: root/llvm
Commit message (Collapse)AuthorAgeFilesLines
...
* [dsymutil] Add support for the -arch option.Frederic Riss2015-08-056-13/+89
| | | | | | | | This option allows to select a subset of the architectures when performing a universal binary link. The filter is done completely in the mach-o specific part of the code. llvm-svn: 244160
* Fix Windows test failure with triple instead of using the native OSReid Kleckner2015-08-051-3/+3
| | | | llvm-svn: 244159
* If the "CodeView" module flag is set, emit codeview instead of DWARFReid Kleckner2015-08-0514-35/+30
| | | | | | | | | | | | | | Summary: Emit both DWARF and CodeView if "CodeView" and "Dwarf Version" module flags are set. Reviewers: majnemer Subscribers: llvm-commits Differential Revision: http://reviews.llvm.org/D11756 llvm-svn: 244158
* MIR Serialization: Serialize the machine operand's offset.Alex Lorenz2015-08-0511-9/+242
| | | | | | | This commit serializes the offset for the following operands: target index, global address, external symbol, constant pool index, and block address. llvm-svn: 244157
* Add <numeric> header for use of std::accumulate().Cong Hou2015-08-051-0/+1
| | | | llvm-svn: 244156
* Divide the primitive size in bits by eight so the initial load's alignment is inRichard Diamond2015-08-052-1/+9
| | | | | | bytes as expected. Tested with the included unit test. llvm-svn: 244155
* Record whether the weights on out-edges from a MBB are normalized.Cong Hou2015-08-056-40/+104
| | | | | | | | | | | | 1. Create a utility function normalizeEdgeWeights() in MachineBranchProbabilityInfo that normalizes a list of edge weights so that the sum of then can fit in uint32_t. 2. Provide an interface in MachineBasicBlock to normalize its successors' weights. 3. Add a flag in MachineBasicBlock that tracks whether its successors' weights are normalized. 4. Provide an overload of getSumForBlock that accepts a non-const pointer to a MBB so that it can force normalizing this MBB's successors' weights. 5. Update several uses of getSumForBlock() by eliminating the once needed weight scale. Differential Revision: http://reviews.llvm.org/D11442 llvm-svn: 244154
* [libFuzzer] add option -report_slow_units=Nsec to control when slow units ↵Kostya Serebryany2015-08-054-3/+8
| | | | | | are printed llvm-svn: 244152
* [libFuzzer] add a missing test fileKostya Serebryany2015-08-051-0/+28
| | | | llvm-svn: 244151
* Drop the defaulted CallGraph move ctor, since it's unused and MSVC doesn't ↵David Blaikie2015-08-051-4/+0
| | | | | | support defaulted move ops llvm-svn: 244135
* Replace &vector[0] with vector.data() to avoid invalid dereference caught by ↵Nick Lewycky2015-08-051-4/+5
| | | | | | debug STL. Also move a '*' for consistency and fix an 80-col violation. llvm-svn: 244134
* -Wdeprecated: Remove some dead code that was relying on a questionable ↵David Blaikie2015-08-052-49/+0
| | | | | | (rule-of-3-violating) copy ctor in MCInstPrinter llvm-svn: 244133
* [LoopUnswitch] Preserve make.implicit metadata for unswitched conditionsChen Li2015-08-052-0/+24
| | | | | | | | | | | | Summary: This patch adds support to preserve make.implicit metadata for unswitched conditions in loop pre-header. Reviewers: sanjoy, weimingz Subscribers: mcrosier, llvm-commits Differential Revision: http://reviews.llvm.org/D11769 llvm-svn: 244132
* [Hexagon] Edit a comment. NFCKrzysztof Parzyszek2015-08-051-7/+1
| | | | llvm-svn: 244130
* -Wdeprecated clean by making LogBuilder move constructible so it can be ↵David Blaikie2015-08-052-4/+9
| | | | | | returned by value (in DifferenceEngine::logf) llvm-svn: 244129
* x86 atomic: optimize a.store(reg op a.load(acquire), release)JF Bastien2015-08-055-119/+562
| | | | | | | | | | | | Summary: PR24191 finds that the expected memory-register operations aren't generated when relaxed { load ; modify ; store } is used. This is similar to PR17281 which was addressed in D4796, but only for memory-immediate operations (and for memory orderings up to acquire and release). This patch also handles some floating-point operations. Reviewers: reames, kcc, dvyukov, nadav, morisset, chandlerc, t.p.northover, pete Subscribers: llvm-commits Differential Revision: http://reviews.llvm.org/D11382 llvm-svn: 244128
* [PM] Remove a failed attempt to port the CallGraph analysis to the newChandler Carruth2015-08-052-27/+0
| | | | | | | | | | | | | pass manager. This never worked, and won't ever work. It was actually why I ended up building the LazyCallGraph set of code which is more more effectively wired up to the new pass manager. This accidentally got committed when I was trying to land a cleanup of the code organization in the other parts of this file. =[ My bad, but fortunately Dave was keen eyed enough to spot that this code couldn't possibly work. =] llvm-svn: 244127
* Update GettingStarted docs list of LLVM_TARGETS_TO_BUILD to match cmake.Pete Cooper2015-08-051-3/+3
| | | | | | | | | | Since the docs were written, we've added the BPF backend to the list. Updating the docs to take this in to account. Also sorted them to match cmake while I was changing these lines. Reviewed by Chris B. llvm-svn: 244123
* -Wdeprecated cleanup: Make CallGraph movable by default by using unique_ptr ↵David Blaikie2015-08-053-26/+36
| | | | | | | | | | members rather than raw pointers. The only place that tries to return a CallGraph by value (CallGraphAnalysis::run) doesn't seem to be used right now, but it's a reasonable bit of cleanup anyway. llvm-svn: 244122
* Revert "Fix MO's analyzePhysReg, it was confusing sub- and super-registers. ↵JF Bastien2015-08-053-145/+55
| | | | | | | | Problem pointed out by Michael Hordijk." I mistakenly committed the patch for D6629, and was trying to commit another. Reverting until it gets proper signoff. llvm-svn: 244121
* Fix MO's analyzePhysReg, it was confusing sub- and super-registers. Problem ↵JF Bastien2015-08-053-55/+145
| | | | | | pointed out by Michael Hordijk. llvm-svn: 244120
* -Wdeprecated-clean: Remove uses of throw() in favor of noexceptDavid Blaikie2015-08-053-10/+11
| | | | llvm-svn: 244115
* NFC.Cong Hou2015-08-051-137/+105
| | | | | | Convert comments in MachineBasicBlock.h into new style. llvm-svn: 244113
* -Wdeprecated-clean: Fix cases of violating the rule of 5 in ways that are ↵David Blaikie2015-08-055-3/+12
| | | | | | | | | | | deprecated in C++11 LoadedObjectInfo was depending on the implicit copy ctor in the presence of a user-declared dtor. Default (and protect) it in the base class and make the devired classes final to avoid any risk of a public API that would enable slicing. llvm-svn: 244112
* Revert "Fix `llvm-config` to emit the linker flag for the combined shared ↵Richard Diamond2015-08-055-52/+2
| | | | | | | | | | object built by autoconfig/make instead of the individual components." It seems I was wrong thinking `autoconf`/`make` only installed shared libraries if configured with `--enable-shared`, even if `--disable-static` is present. I'll re-address with a followup patch. This reverts commit r243297 for causing PR#24154. llvm-svn: 244108
* Write access test.Richard Diamond2015-08-051-1/+2
| | | | llvm-svn: 244103
* MIR Parser: Report an error when parsing large immediate operands.Alex Lorenz2015-08-052-2/+21
| | | | llvm-svn: 244100
* MIR Serialization: Serialize the typed immediate integer machine operands.Alex Lorenz2015-08-055-0/+68
| | | | llvm-svn: 244098
* [Unroll] Switch to using 'int' cost types in preparation for a somewhatChandler Carruth2015-08-051-6/+6
| | | | | | more involved change to the cost computation pattern. llvm-svn: 244095
* [dsymutil] Fix test patterns.Frederic Riss2015-08-051-3/+3
| | | | | | | Depending on the filesystem paths, the YAML dump might quote paths. Account for that in the regex patterns. llvm-svn: 244094
* MIR Parser: Extract the IR constant parsing code into a new method. NFC.Alex Lorenz2015-08-051-7/+14
| | | | | | | | This commit extracts the code that parses the IR constant values into a new method named 'parseIRConstant' in the 'MIParser' class. The new method will be reused by the code that parses the typed integer immediate machine operands. llvm-svn: 244093
* [Hexagon] Implement TargetTransformInfo for HexagonKrzysztof Parzyszek2015-08-055-7/+155
| | | | | Author: Brendon Cahoon <bcahoon@codeaurora.org> llvm-svn: 244089
* [dsymutil] Implement support for handling mach-o universal binaries as main ↵Frederic Riss2015-08-0510-40/+235
| | | | | | | | | | | | | | | | | input/output. The DWARF linker isn't touched by this, the implementation links individual files and merges them together into a fat binary by calling out to the 'lipo' utility. The main change is that the MachODebugMapParser can now return multiple debug maps for a single binary. The test just verifies that lipo would be invoked correctly, but doesn't actually generate a binary. This mimics the way clang tests its external iplatform tools integration. llvm-svn: 244087
* [dsymutil] Introduce exit helper. NFC.Frederic Riss2015-08-052-3/+12
| | | | | | | | llvm-dsymutil will start creating temporary files in a followup commit. To ease the correct cleanup of this files, introduce a helper called to exit dsymutil. llvm-svn: 244086
* [dsymutil] Split some logic into a helper function. NFCFrederic Riss2015-08-051-10/+10
| | | | llvm-svn: 244085
* [libFuzzer] use data-flow feedback from strcmpKostya Serebryany2015-08-055-3/+45
| | | | llvm-svn: 244084
* MIR Parser: Report an error when parsing duplicate register flags.Alex Lorenz2015-08-052-1/+43
| | | | llvm-svn: 244081
* [TTI] Make the cost APIs in TargetTransformInfo consistently use 'int'Chandler Carruth2015-08-0516-436/+441
| | | | | | | | | | | | | | | | | | | | | | | | | | rather than 'unsigned' for their costs. For something like costs in particular there is a natural "negative" value, that of savings or saved cost. As a consequence, there is a lot of code that subtracts or creates negative values based on cost, all of which is prone to awkwardness or bugs when dealing with an unsigned type. Similarly, we *never* want these values to wrap, as that would cause Very Bad code generation (likely percieved as an infinite loop as we try to emit over 2^32 instructions or some such insanity). All around 'int' seems a much better fit for these basic metrics. I've added asserts to ensure that at least the TTI interface never returns negative numbers here. If we ever have a use case for negative numbers, we can remove this, but this way a bug where someone used '-1' to produce a 'very large' cost will be caught by the assert. This passes all tests, and is also UBSan clean. No functional change intended. Differential Revision: http://reviews.llvm.org/D11741 llvm-svn: 244080
* [GMR] Teach the conservative path of GMR to catch even more easy cases.Chandler Carruth2015-08-052-41/+144
| | | | | | | | | | | | | | In PR24288 it was pointed out that the easy case of a non-escaping global and something that *obviously* required an escape sometimes is hidden behind PHIs (or selects in theory). Because we have this binary test, we can easily just check that all possible input values satisfy the requirement. This is done with a (very small) recursion through PHIs and selects. With this, the specific example from the PR is correctly folded by GVN. Differential Revision: http://reviews.llvm.org/D11707 llvm-svn: 244078
* MIR Serialization: Serialize the 'early-clobber' register operand flag.Alex Lorenz2015-08-055-2/+56
| | | | llvm-svn: 244075
* Move BB succ_iterator to be inside TerminatorInst. NFC.Pete Cooper2015-08-053-145/+186
| | | | | | | | | | | | | | | | | | | | | To get the successors of a BB we currently do successors(BB) which ultimately walks the successors of the BB's terminator. This moves the iterator to TerminatorInst as thats what we're actually using to do the iteration, and adds a member function to TerminatorInst to allow us to iterate directly over successors given an instruction. For example, we can now do for (auto *Succ : BI->successors()) instead of for (unsigned i = 0, e = BI->getNumSuccessors(); i != e; ++i) Reviewed by Tobias Grosser. llvm-svn: 244074
* MIR Serialization: Serialize the 'debug-use' register operand flag.Alex Lorenz2015-08-055-4/+13
| | | | llvm-svn: 244071
* MIR Parser: Simplify the handling of quoted tokens. NFC.Alex Lorenz2015-08-053-77/+42
| | | | | | | The machine instructions lexer should not expose the difference between quoted and unquoted tokens to the parser. llvm-svn: 244068
* [AArch64] Register AArch64DeadRegisterDefinition pass with LLVM pass manager.Chad Rosier2015-08-051-2/+14
| | | | llvm-svn: 244067
* [Sparc] Fix disassembly of popc instruction.James Y Knight2015-08-053-2/+11
| | | | | | | | And add tests. Patch by David Wiberg! llvm-svn: 244064
* AMDGPU/SI: Remove EXECRegMatt Arsenault2015-08-055-21/+9
| | | | | | For the same reasons as the other physical registers. llvm-svn: 244062
* AMDGPU: Remove SCCReg.Matt Arsenault2015-08-055-36/+22
| | | | | | | These should be handled as a physical register rather than a virtual register class with one member. llvm-svn: 244061
* [AArch64] Register (existing) AArch64BranchRelaxation pass with LLVM pass ↵Chad Rosier2015-08-051-2/+13
| | | | | | | | | manager. Summary: Among other things, this allows -print-after-all/-print-before-all to dump IR around this pass. llvm-svn: 244060
* Force the MachO generated for Darwin to have VERSION_MIN load commandSteven Wu2015-08-0541-415/+445
| | | | | | | | | On Darwin, it is required to stamp the object file with VERSION_MIN load command. This commit will provide a VERSRION_MIN load command to the MachO file that doesn't specify the version itself by inferring from Target Triple. llvm-svn: 244059
* test-release.sh: Fix naming of OpenMP runtime tarballHans Wennborg2015-08-051-1/+6
| | | | llvm-svn: 244058
OpenPOWER on IntegriCloud