summaryrefslogtreecommitdiffstats
path: root/llvm
Commit message (Collapse)AuthorAgeFilesLines
* ValueMapper: Pull out helper to resolve cycles, NFCDuncan P. N. Exon Smith2015-08-071-8/+10
| | | | | | | Pull out a helper for resolving uniquing cycles of `Metadata` to remove the boiler-plate of downcasting to `MDNode`. llvm-svn: 244301
* [llvm-readobj] Convert to range-loops.Davide Italiano2015-08-072-6/+4
| | | | llvm-svn: 244300
* MIR Serialization: Fix serialization of unnamed IR block references.Alex Lorenz2015-08-063-12/+55
| | | | | | | | The block address machine operands can reference IR blocks in other functions. This commit fixes a bug where the references to unnamed IR blocks in other functions weren't serialized correctly. llvm-svn: 244299
* MIR Parser: Simplify the token's string value handling.Alex Lorenz2015-08-063-56/+67
| | | | | | | | | | | | | | | | | This commit removes the 'StringOffset' and 'HasStringValue' fields from the MIToken struct and simplifies the 'stringValue' method which now returns the new 'StringValue' field. This commit also adopts a different way of initializing the lexed tokens - instead of constructing a new MIToken instance, the lexer resets the old token using the new 'reset' method and sets its attributes using the new 'setStringValue', 'setOwnedStringValue', and 'setIntegerValue' methods. Reviewers: Sean Silva Differential Revision: http://reviews.llvm.org/D11792 llvm-svn: 244295
* [LangRef] Cleanup some stray whitespace inconsistencies.Sean Silva2015-08-061-104/+104
| | | | | | Patch by Debora Setton Sanches! <setton.debora@gmail.com> llvm-svn: 244294
* [LangRef] Tiny editorial fixes.Sean Silva2015-08-061-20/+20
| | | | | | Patch by Debora Setton Sanches! <setton.debora@gmail.com> llvm-svn: 244293
* Add initial documentation for the MIR serialization format.Alex Lorenz2015-08-062-0/+129
| | | | | | Differential Revision: http://reviews.llvm.org/D11736 llvm-svn: 244292
* [AArch64][FastISel] Always use AND before checking the branch flag.Juergen Ributzka2015-08-062-1/+25
| | | | | | | | | | | | | When we are not emitting the condition for the branch, because the condition is in another BB or SDAG did the selection for us, then we have to mask the flag in the register with AND. This is required when the condition comes from a truncate, because SDAG only truncates down to a legal size of i32. This fixes rdar://problem/22161062. llvm-svn: 244291
* Revert "[AArch64][FastISel] Add more truncation tests." and ↵Juergen Ributzka2015-08-063-91/+43
| | | | | | | | | | | "[AArch64][FastISel] Always use an AND instruction when truncating to non-legal types." This reverts commit r243198 and 243304. Turns out this wasn't the correct fix for this problem. It works only within FastISel, but fails when the truncate is selected by SDAG. llvm-svn: 244287
* [compatibility.ll] Cover explicitly named comdats.Sean Silva2015-08-062-0/+8
| | | | | | Patch by Vedant Kumar! <vsk@apple.com> llvm-svn: 244284
* Describe the process better.Sean Silva2015-08-061-3/+5
| | | | | | Patch by Vedant Kumar! <vsk@apple.com> llvm-svn: 244283
* Move to llvm-readobj code that is only used there.Rafael Espindola2015-08-064-215/+216
| | | | | | | | | | lld might end up using a small part of this, but it will be in a much refactored form. For now this unblocks avoiding the full section scan in the ELFFile constructor. This also has a (very small) error handling improvement. llvm-svn: 244282
* Revert accidentally committed WinEHPrepare changesDavid Majnemer2015-08-062-374/+9
| | | | | | This reverts commit r244272, r244273, r244274, and r244275. llvm-svn: 244278
* [IR] Remove TerminateInst's "NameStr" argumentDavid Majnemer2015-08-062-26/+18
| | | | | | | TerminateInst can't have a name because it doesn't produce a result. No functionality change is intended, this is just a cleanup. llvm-svn: 244276
* PHIs don't need to be postprocessedDavid Majnemer2015-08-061-31/+6
| | | | llvm-svn: 244275
* Handle PHI nodes prefacing EH pads tooDavid Majnemer2015-08-062-14/+88
| | | | llvm-svn: 244274
* handle phi nodesDavid Majnemer2015-08-061-4/+27
| | | | llvm-svn: 244273
* [WinEHPrepare] Add rudimentary support for the new EH instructionsDavid Majnemer2015-08-061-8/+301
| | | | | | | | | | | | | | | | | | | | | | | Summary: This adds somewhat basic preparation functionality including: - Formation of funclets via coloring basic blocks. - Cloning of polychromatic blocks to ensure that funclets have unique program counters. - Demotion of values used between different funclets. - Some amount of cleanup once we have removed predecessors from basic blocks. - Verification that we are left with a CFG that makes some amount of sense. N.B. Arguments and numbering still need to be done. Reviewers: rnk, JosephTremoulet Subscribers: llvm-commits Differential Revision: http://reviews.llvm.org/D11750 llvm-svn: 244272
* [dsymutil] Implement dSYM bundle creationFrederic Riss2015-08-063-17/+165
| | | | | | | | | | | | | | A dSYM bundle is a file hierarchy that looks slike this: <bundle name>.dSYM/ Contents/ Info.plist Resources/ DWARF/ <DWARF file(s)> This is the default output mode of dsymutil. llvm-svn: 244270
* [dsymutil] Add (unimplemented) --flat optionFrederic Riss2015-08-0613-21/+31
| | | | | | | | | | | | | | dsymutil should by default generate dSYM bundles which are filesystem hierarchies containing the debug info and an additional Info.plist. Currently llvm-dsymutil emits raw binaries containing the debug info. This is what we call the 'flat mode'. Add a -f/-flat option that is supposed to enable that flat mode, but don't wire it for now, only pass it to the tests that will need it to stay functional once we do bundle generation by default. This basically makes this commit NFC and removes the noise from the actual commit that adds support for bundle generation. llvm-svn: 244269
* Thread premissions through sys::fs::create_director{y|ies}Frederic Riss2015-08-065-9/+38
| | | | llvm-svn: 244268
* [WinEH] Add documentation motivating the new EH instructionsReid Kleckner2015-08-061-150/+205
| | | | | | | | | | | This adds documentation on how to use the new EH instructions added in r243766. Reviewers: majnemer, reames Differential Revision: http://reviews.llvm.org/D11565 llvm-svn: 244267
* [IndVars] Fix PR24356.Sanjoy Das2015-08-062-36/+93
| | | | | | | Unsigned predicates increase or decrease agnostic of the signs of their increments. llvm-svn: 244265
* [IndVars] Improved logging under DEBUG(); NFC.Sanjoy Das2015-08-061-6/+3
| | | | | | | Before this, we'd print the modified comparision in the "Simplified comparison" case. That looked misleading. llvm-svn: 244264
* Convert a bunch of loops to foreach. NFC.Pete Cooper2015-08-0612-31/+22
| | | | | | | | After r244074, we now have a successors() method to iterate over all the successors of a TerminatorInst. This commit changes a bunch of eligible loops to use it. llvm-svn: 244260
* Update comments.Rui Ueyama2015-08-061-2/+2
| | | | llvm-svn: 244259
* AMDGPU/SI: Add Fiji supportTom Stellard2015-08-061-0/+4
| | | | | | Patch by: Alex Deucher llvm-svn: 244255
* AMDGPU/SI: Add support for 32-bit immediate SMRD offsets on CITom Stellard2015-08-067-44/+165
| | | | | | | | | | Reviewers: arsenm Subscribers: llvm-commits Differential Revision: http://reviews.llvm.org/D11604 llvm-svn: 244254
* AMDGPU/SI: Use ComplexPatterns for SMRD addressing modesTom Stellard2015-08-065-54/+183
| | | | | | | | | | | | Summary: This allows us to consolidate several of the TableGen patterns. Reviewers: arsenm Subscribers: llvm-commits Differential Revision: http://reviews.llvm.org/D11602 llvm-svn: 244253
* Fix memory leaks by avoiding extra manual dynamic allocationDavid Blaikie2015-08-061-57/+41
| | | | | | Improvement to r244212. llvm-svn: 244252
* Fix nested CrashRecoveryContexts with LLVM_ENABLE_THREADS=OFF, allow them.Nico Weber2015-08-062-8/+14
| | | | | | | | | | | | | | | | | | libclang uses a CrashRecoveryContext, and building a module does too. If a module gets built through libclang, nested CrashRecoveryContexts are used. They work fine with threads as things are stored in ThreadLocal variables, but in LLVM_ENABLE_THREADS=OFF builds the two recovery contexts would write to the same globals. To fix, keep active CrashRecoveryContextImpls in a list and have the global point to the innermost one, and do something similar for tlIsRecoveringFromCrash. Necessary (but not sufficient) for PR11974 and PR20325 http://reviews.llvm.org/D11770 llvm-svn: 244251
* [libFuzzer] move the mutators to public interface so that custom mutators ↵Kostya Serebryany2015-08-064-38/+33
| | | | | | may reuse these functions directly llvm-svn: 244250
* Rename inst_range() to instructions() for consistency. NFCNico Rieck2015-08-0613-26/+28
| | | | llvm-svn: 244248
* Fix possible infinite loop in shrink wrapping when searching for save/restoreKit Barton2015-08-064-6/+111
| | | | | | | | | | | | | | | | | | | | points. There is an infinite loop that can occur in Shrink Wrapping while searching for the Save/Restore points. Part of this search checks whether the save/restore points are located in different loop nests and if so, uses the (post) dominator trees to find the immediate (post) dominator blocks. However, if the current block does not have any immediate (post) dominators then this search will result in an infinite loop. This can occur in code containing an infinite loop. The modification checks whether the immediate (post) dominator is different from the current save/restore block. If it is not, then the search terminates and the current location is not considered as a valid save/restore point for shrink wrapping. Phabricator: http://reviews.llvm.org/D11607 llvm-svn: 244247
* LibDriver: Replace references to lld-link2 with lld-link.Peter Collingbourne2015-08-062-2/+2
| | | | llvm-svn: 244246
* [Reassociation] Fix miscompile for va_arg arguments.Quentin Colombet2015-08-064-22/+44
| | | | | | | | | | | | | | | | iisUnmovableInstruction() had a list of instructions hardcoded which are considered unmovable. The list lacked (at least) an entry for the va_arg and cmpxchg instructions. Fix this by introducing a new Instruction::mayBeMemoryDependent() instead of maintaining another instruction list. Patch by Matthias Braun <matze@braunis.de>. Differential Revision: http://reviews.llvm.org/D11577 rdar://problem/22118647 llvm-svn: 244244
* MIR Parser: Report an error when parsing duplicate memory operand flags.Alex Lorenz2015-08-062-1/+34
| | | | llvm-svn: 244240
* Revert r244154 which causes some build failure. See ↵Cong Hou2015-08-066-104/+40
| | | | | | https://llvm.org/bugs/show_bug.cgi?id=24377. llvm-svn: 244239
* Update docs for accessing !dbg attachmentsDuncan P. N. Exon Smith2015-08-061-6/+5
| | | | llvm-svn: 244238
* This patch changes the interface to enable the shrink wrapping optimization. Kit Barton2015-08-063-28/+58
| | | | | | | | | | | | | | | It adds a new constructor, which takes a std::function predicate function that is run at the beginning of shrink wrapping to determine whether the optimization should run on the given machine function. The std::function can be overridden by each target, allowing target-specific decisions to be made on each machine function. This is necessary for PowerPC, as the decision to run shrink wrapping is partially based on the ABI. Futhermore, this operates nicely with the GCC iFunc capability, which allows option overrides on a per-function basis. Phabricator: http://reviews.llvm.org/D11421 llvm-svn: 244235
* [AArch64] Use a static function and other minor cleanup for readability. NFC.Chad Rosier2015-08-061-11/+12
| | | | llvm-svn: 244233
* [cmake] Handle Dragonfly BSD like FreeBSDReid Kleckner2015-08-061-3/+3
| | | | | | | | Fixes build break reported in PR24358. Patch by John Marino. llvm-svn: 244232
* docs: Fix typo in Phabricator.rstReid Kleckner2015-08-061-1/+1
| | | | | | | | | | | | Summary: Fix a small typo in Phabricator.rst: s/your/you. Reviewers: rnk Subscribers: rnk, llvm-commits Differential Revision: http://reviews.llvm.org/D11585 llvm-svn: 244231
* MIR Serialization: Serialize the 'invariant' machine memory operand flag.Alex Lorenz2015-08-065-3/+34
| | | | llvm-svn: 244230
* Fix an alignment error in `llvm::expandAtomicRMWToCmpXchg` without breaking ↵Richard Diamond2015-08-063-1/+14
| | | | | | | | | | | | | | the build where X86 isn't enabled. Summary: Divide the primitive size in bits by eight so the initial load's alignment is in bytes as expected. Tested with the included unit test. Reviewers: rengolin, jfb Subscribers: llvm-commits Differential Revision: http://reviews.llvm.org/D11804 llvm-svn: 244229
* MIR Serialization: Serialize the 'non-temporal' machine memory operand flag.Alex Lorenz2015-08-065-1/+34
| | | | llvm-svn: 244228
* [AArch64] Improve the readability of the ld/st optimization pass. NFC.Chad Rosier2015-08-061-37/+48
| | | | llvm-svn: 244222
* [SPARC] Don't compare arch name as a string, use the enum instead.Douglas Katzman2015-08-062-2/+5
| | | | | | Fixes PR22695 llvm-svn: 244221
* Reuse variable. NFC.Rafael Espindola2015-08-061-2/+1
| | | | llvm-svn: 244214
* Silencing a -Wtype-limits warning; NFC.Aaron Ballman2015-08-061-1/+1
| | | | llvm-svn: 244213
OpenPOWER on IntegriCloud