summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
...
* GlobalISel: restrict G_EXTRACT instruction to just one operand.Tim Northover2017-03-0621-115/+151
| | | | | | | A bit more painful than G_INSERT because it was more widely used, but this should simplify the handling of extract operations in most locations. llvm-svn: 297100
* Relax stmtexpr.cpp checks for PPC64Reid Kleckner2017-03-061-5/+5
| | | | llvm-svn: 297099
* Set the Int64Type / IntMaxType types correctly for OpenBSD/mips64Brad Smith2017-03-062-1/+7
| | | | llvm-svn: 297098
* Remove dependency from FileSpec to ArchSpec.Zachary Turner2017-03-063-14/+17
| | | | | | | All it really needs is the llvm::Triple, so make FileSpec take the Triple directly instead of the ArchSpec. llvm-svn: 297096
* Remove FileSpec::ReadFileContents.Zachary Turner2017-03-0620-183/+97
| | | | | | | | | | | | | | | | This functionality is subsumed by DataBufferLLVM, which is also more efficient since it will try to mmap. However, we don't yet support mmaping writable private sections, and in some cases we were using ReadFileContents and then modifying the buffer. To address that I've added a flag to the DataBufferLLVM methods that allow you to map privately, which disables the mmaping path entirely. Eventually we should teach DataBufferLLVM to use mmap with writable private, but that is orthogonal to this effort. Differential Revision: https://reviews.llvm.org/D30622 llvm-svn: 297095
* [libfuzzer] do not use xargs for shell expansionMike Aizatsky2017-03-061-1/+1
| | | | | | | | | Summary: After https://reviews.llvm.org/rL296904 xargs shouldn't be necesssary. Differential Revision: https://reviews.llvm.org/D30371 llvm-svn: 297094
* [coroutines] Add DependentCoawaitExpr and fix re-building CoroutineBodyStmt.Eric Fiselier2017-03-0625-244/+776
| | | | | | | | | | | | | | | | | | | | | | | | | Summary: The changes contained in this patch are: 1. Defines a new AST node `CoawaitDependentExpr` for representing co_await expressions while the promise type is still dependent. 2. Correctly detect and transform the 'co_await' operand to `p.await_transform(<expr>)` when possible. 3. Change the initial/final suspend points to build during the initial parse, so they have the correct operator co_await lookup results. 4. Fix transformation of the CoroutineBodyStmt so that it doesn't re-build the final/initial suspends. @rsmith: This change is a little big, but it's not trivial for me to split it up. Please let me know if you would prefer this submitted as multiple patches. Reviewers: rsmith, GorNishanov Reviewed By: rsmith Subscribers: ABataev, rsmith, mehdi_amini, cfe-commits Differential Revision: https://reviews.llvm.org/D26057 llvm-svn: 297093
* [InstCombine] use dyn_cast instead of isa+cast; NFCISanjay Patel2017-03-061-15/+12
| | | | llvm-svn: 297092
* [ObjectYAML] Support for DW_FORM_implicit_const DWARF5 formChris Bieneman2017-03-065-0/+314
| | | | | | | | This patch adds support to the DWARF YAML reader and writer for the new DWARF5 abbreviation form, DW_FORM_implicit_const. The attribute was added in r291599. llvm-svn: 297091
* [coroutines] Improve diagnostics when building implicit constructs.Eric Fiselier2017-03-063-28/+35
| | | | | | | | | | Previously when a coroutine was building the implicit setup/destroy constructs it would emit diagostics about failures on the first co_await/co_return/co_yield it encountered. This was confusing because that construct may not itself be ill-formed. This patch moves the diagnostics to the function start instead. llvm-svn: 297089
* [GlobalISel] Fix G_FPEXT’s description. NFC.Volkan Keles2017-03-061-1/+1
| | | | llvm-svn: 297088
* Make Discarded a InputSectionBase.Rafael Espindola2017-03-062-6/+3
| | | | | | NFC, just a bit simpler. llvm-svn: 297087
* [DAG] refactor related div/rem folds; NFCISanjay Patel2017-03-061-28/+32
| | | | | | | | | | | This is known incomplete and not called in the right order relative to other folds, but that's the current behavior. I'm just trying to clean this up before making actual functional changes to make the patch smaller. The logic here should mimic the IR equivalents that are in InstSimplify's simplifyDivRem(). llvm-svn: 297086
* [DWARFv5] Update definitions to match published spec.Paul Robinson2017-03-066-39/+90
| | | | | | | | | | | | | Some late additions to DWARF v5 were not in Dwarf.def; also one form was redefined. Add the new cases to relevant switches in different parts of LLVM. Replace DW_FORM_ref_sup with DW_FORM_ref_sup[4,8]. I did not add support for DW_FORM_strx3/addrx3 other that defining the constants. We don't have any infrastructure to support these. Differential Revision: http://reviews.llvm.org/D30664 llvm-svn: 297085
* Don't assume cleanup emission preserves dominance in expr evaluationReid Kleckner2017-03-066-25/+165
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Summary: Because of the existence branches out of GNU statement expressions, it is possible that emitting cleanups for a full expression may cause the new insertion point to not be dominated by the result of the inner expression. Consider this example: struct Foo { Foo(); ~Foo(); int x; }; int g(Foo, int); int f(bool cond) { int n = g(Foo(), ({ if (cond) return 0; 42; })); return n; } Before this change, result of the call to 'g' did not dominate its use in the store to 'n'. The early return exit from the statement expression branches to a shared cleanup block, which ends in a switch between the fallthrough destination (the assignment to 'n') or the function exit block. This change solves the problem by spilling and reloading expression evaluation results when any of the active cleanups have branches. I audited the other call sites of enterFullExpression, and they don't appear to keep and Values live across the site of the cleanup, except in ARC code. I wasn't able to create a test case for ARC that exhibits this problem, though. Reviewers: rjmccall, rsmith Subscribers: cfe-commits Differential Revision: https://reviews.llvm.org/D30590 llvm-svn: 297084
* OpenMP version 5.0 addedJonathan Peyton2017-03-0610-12/+2753
| | | | | | | | | | | | Add build option LIBOMP_OMP_VERSION=50, 5.0 headers, and add the year/month associated with OpenMP 5.0 in relevant source locations. Also, remove the deprecated LIBOMP_OMP_VERSION=41 option. Patch by Olga Malysheva Differential Revision: https://reviews.llvm.org/D30450 llvm-svn: 297083
* Mixed type atomic routines added to Windows DLLJonathan Peyton2017-03-062-0/+8
| | | | | | | | Patch by Olga Malysheva Differential Revision: https://reviews.llvm.org/D30408 llvm-svn: 297082
* [Outliner] Fixed Asan bot failure in r296418Jessica Paquette2017-03-0611-0/+1754
| | | | | | | | Fixed the asan bot failure which led to the last commit of the outliner being reverted. The change is in lib/CodeGen/MachineOutliner.cpp in the SuffixTree's constructor. LeafVector is no longer initialized using reserve but just a standard constructor. llvm-svn: 297081
* [TableGen] Ensure proper ordering of subtarget feature namesKrzysztof Parzyszek2017-03-061-4/+17
| | | | | | | Recommit r297039 without the testcase. The MIR testcase did not work well with MC code emitter. llvm-svn: 297080
* Add list of filesystem NB comments to TODO.TXT so they can be tracked separatelyEric Fiselier2017-03-061-0/+50
| | | | llvm-svn: 297079
* [AArch64][Redundant Copy Elim] Add support for CMN and shifted imm.Chad Rosier2017-03-062-6/+148
| | | | | | | | | | This patch extends the current functionality of the AArch64 redundant copy elimination pass to handle CMN instructions as well as a shifted immediates. Differential Revision: https://reviews.llvm.org/D30576. llvm-svn: 297078
* Detemplate EhInputSection. NFC.Rafael Espindola2017-03-069-42/+55
| | | | llvm-svn: 297077
* [coroutines] Add co_return statement emissionGor Nishanov2017-03-065-7/+94
| | | | | | | | | | | | | | | | | Summary: Added co_return statement emission. Tweaked coro-alloc.cpp test to use co_return to trigger coroutine processing instead of co_await, since this change starts emitting the body of the coroutine and await expression handling has not been upstreamed yet. Reviewers: rsmith, majnemer, EricWF, aaron.ballman Reviewed By: rsmith Subscribers: majnemer, llvm-commits, mehdi_amini Differential Revision: https://reviews.llvm.org/D29979 llvm-svn: 297076
* Disable gvn-hoist (PR32153)Hans Wennborg2017-03-062-3/+2
| | | | llvm-svn: 297075
* Mark LWG 2806 as complete. Libc++ speculatively shiped this change in 4.0Eric Fiselier2017-03-061-1/+1
| | | | llvm-svn: 297074
* Mark LWG 2789 as complete. No changes requiredEric Fiselier2017-03-061-1/+1
| | | | llvm-svn: 297073
* Verifier: Change Assert to AssertDI.Adrian Prantl2017-03-061-3/+3
| | | | | | | This error can be recovered from by stripping debug info. This is NFC for +asserts builds. llvm-svn: 297072
* Implement LWG 2787 - [file_status.cons] is inconsistentEric Fiselier2017-03-063-5/+7
| | | | llvm-svn: 297071
* Add AArch64 support.Paul Osmialowski2017-03-067-1/+26
| | | | | | | | This adds AArch64 support to recently added part of the runtime responsible for offloading to target. This piece of code allows offloading-to-self on AArch64 machines. Differential Revision: https://reviews.llvm.org/D30644 llvm-svn: 297070
* Mark LWG 2781 as complete. No changes requiredEric Fiselier2017-03-061-1/+1
| | | | llvm-svn: 297069
* [ObjectYAML] NFC. Refactor DWARFYAML CompileUnit dump codeChris Bieneman2017-03-064-122/+324
| | | | | | | | | | | | Summary: This patch refactors the DWARFYAML code for dumping compile units to use a visitor pattern. Using this design will, in the future, enable the DWARF YAML code to perform analysis and mutations of the DWARF DIEs. An example of such mutations would be calculating the length of a compile unit and updating the CU's Length field before writing the DIE. This support will make it easier to craft or modify DWARF tests by hand. Reviewers: lhames Subscribers: mgorny, fhahn, jgosnell, aprantl, llvm-commits Differential Revision: https://reviews.llvm.org/D30357 llvm-svn: 297067
* Mark two any_cast issues as completeEric Fiselier2017-03-061-2/+2
| | | | llvm-svn: 297066
* Updated email address in `CREDITS.txt`.Michael Park2017-03-061-1/+1
| | | | llvm-svn: 297065
* Test commit. Added a blank line.Jessica Paquette2017-03-061-0/+1
| | | | llvm-svn: 297064
* Fix -Werror build error.Evgeniy Stepanov2017-03-061-1/+1
| | | | | | | | tools/lld/ELF/Symbols.cpp:215:13: error: unused variable 'S' [-Werror,-Wunused-variable] if (auto *S = dyn_cast<SharedSymbol>(this) llvm-svn: 297063
* Revert r297039, it's causing some mysterious buildbot failuresKrzysztof Parzyszek2017-03-062-44/+4
| | | | llvm-svn: 297062
* Detemplate merge (input and synthetic) sections. NFC.Rafael Espindola2017-03-069-92/+77
| | | | llvm-svn: 297061
* AMDGPU/R600: Fix ALU clause markers use detectionJan Vesely2017-03-062-4/+7
| | | | | | | | also exit early on kill instead of redefinition. Differential Revision: https://reviews.llvm.org/D30230 llvm-svn: 297060
* Convert two uses of uintX_t. NFC.Rafael Espindola2017-03-062-6/+5
| | | | llvm-svn: 297059
* NewGVN: We were not really failing this testcase, because the instructions ↵Daniel Berlin2017-03-061-7/+12
| | | | | | it was looking for are unused. GVN value numbers unused instructions, NewGVN does not. Fix the instructions to be used, so we eliminate the redundancies it's checking for, and un-XFAIL it llvm-svn: 297058
* [MS] Add support for __ud2 and __int2c MSVC intrinsicsReid Kleckner2017-03-064-3/+32
| | | | | | This was requested in PR31958 and elsewhere. llvm-svn: 297057
* [DWARF] NFC. A few bits of minor code cleanup.Chris Bieneman2017-03-063-13/+0
| | | | | | | | David Blaikie pointed out that the `setForceChildren` API is no longer needed and should be removed from the DWARF Generator APIs. Also the DWARFDebugInfoTest file had some copy pasted comments that are not relevant. I've removed them. llvm-svn: 297056
* [opt-diff] Fix the case when the script is invoked with directoriesAdam Nemet2017-03-061-1/+3
| | | | llvm-svn: 297055
* [IfConversion] Only renormalize probabilities if branches are analyzableKrzysztof Parzyszek2017-03-062-2/+40
| | | | | | | | | | | If a block has non-analyzable branches, the listed successors don't need to add up to one. For example, if a block has a conditional tail call, that tail call will not have a corresponding successor in the successor list, but will still be a possible branch. Differential Revision: https://reviews.llvm.org/D30556 llvm-svn: 297054
* Update log_options unit testPavel Labath2017-03-062-37/+42
| | | | | | | | | | it was accessing the details of the Log class directly. Let it go through the channel class instead. This also discovered a bug when we were setting but not clearing the log options when enabling a channel. llvm-svn: 297053
* [InstSimplify] refactor related div/rem folds; NFCISanjay Patel2017-03-061-47/+37
| | | | llvm-svn: 297052
* GlobalISel: don't emit degenerate G_INSERT instructions.Tim Northover2017-03-063-0/+48
| | | | | | | | | | | Before, we were producing G_INSERT instructions that were actually closer to a cast or even a COPY when both input and output sizes are the same. This doesn't really make sense and means that everything interpreting a G_INSERT also has to handle all these kinds of casts. So now we detect these degenerate cases and emit real casts instead. llvm-svn: 297051
* Further fixes and improvements to the ConstantInitBuilder API.John McCall2017-03-063-25/+267
| | | | llvm-svn: 297050
* Fully precise gc handling of __start and __stop symbols.Rafael Espindola2017-03-062-23/+25
| | | | | | | | | | | | | | | This puts us at parity with bfd, which could already gc this case. I noticed the sections not being gced when linking a modified freebsd kernel. A section that was not gced and not mentioned in the linker script would end up breaking the expected layout. Since fixing the gc is relatively simple and an improvement, that seems better than trying to hack the orphan placement code. There are 173 input section in the entire link whose names are valid C identifiers, so this is probably not too performance critical. llvm-svn: 297049
* [InstSimplify] add tests for vector div/rem with UB potential; NFCSanjay Patel2017-03-062-0/+84
| | | | llvm-svn: 297048
OpenPOWER on IntegriCloud