summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
...
* Factor out some common code between SpecialMemberExceptionSpecInfo and ↵Richard Smith2017-02-244-123/+122
| | | | | | | | SpecialMemberDeletionInfo. To simplify this, convert SpecialMemberOverloadResult to a value type. llvm-svn: 296073
* Update the main document of LLD for those who are not familiar with the project.Rui Ueyama2017-02-241-15/+127
| | | | llvm-svn: 296072
* Introduce support for Debug Registers in RegisterContextNetBSD_x86_64Kamil Rytarowski2017-02-241-268/+17
| | | | | | | | | | | | | | | | | | | | | | | | | | Summary: NetBSD 7.99.62 introduced Debug Registers interface similar to the FreeBSD one. This interface will land NetBSD-8.0. Introduce support for this interface in Register Context NetBSD x86_64 unconditionally as older versions of NetBSD will not be supported. This change allows to reduce diff with other ports and remove local copy of the RegisterInfos_x86_64.h content. NetBSD Register Context for 32-bit x86 support will be added later. Sponsored by <The NetBSD Foundation> Reviewers: labath, joerg, emaste, clayborg Reviewed By: labath, clayborg Subscribers: #lldb Tags: #lldb Differential Revision: https://reviews.llvm.org/D30287 llvm-svn: 296071
* Switch NetBSD from paccept(2) to accept4(2)Kamil Rytarowski2017-02-241-4/+0
| | | | | | | | | | | | | | | | | | | | | | | | | Summary: NetBSD 8.0 will ship with accept4(2) in libc wrapping paccept(2). This change reduces needless difference with other platforms. Older versions of NetBSD will not be supported. No functional change. Sponsored by <The NetBSD Foundation> Reviewers: joerg, emaste, labath, clayborg Reviewed By: emaste, labath, clayborg Subscribers: #lldb Tags: #lldb Differential Revision: https://reviews.llvm.org/D30288 llvm-svn: 296070
* Fix an iterator invalidation bug when simplifying LIC user.Xin Tong2017-02-241-1/+7
| | | | | | | | LoopUnswitch/simplify-with-nonvalness.ll is the test case for this. The LIC has 2 users and deleting the 1st user when it can be simplified invalidated the iterator for the 2nd user. llvm-svn: 296069
* Simplify and pass a more useful source location when computing an exceptionRichard Smith2017-02-241-14/+3
| | | | | | specification for an implicit special member. llvm-svn: 296068
* Refactor computation of exception specification for special members to removeRichard Smith2017-02-242-361/+140
| | | | | | some of the repetition. llvm-svn: 296067
* Recently a change was made to this test in r294639 which fails when theDouglas Yung2017-02-241-1/+6
| | | | | | | | | | | compiler is run in a mode where the default C++ standard is newer than C++03. The reason is because one of the warnings checked is only produced when the compiler is using C++03 or lower. This change fixes this problem as well as adds explicit run lines to run the test in C++03 and C++11 modes. llvm-svn: 296066
* [LazyMachineBFI] Add testcaseAdam Nemet2017-02-241-0/+63
| | | | | | | | | | | | | This is based on Justin's testcase and checking whether BFI is not populated in case hotness is off. This is a patch meant on top of Justin's patch to enable Machine opt-remarks in the AsmPrinter (http://lists.llvm.org/pipermail/llvm-commits/Week-of-Mon-20170130/426595.html) Differential Revision: https://reviews.llvm.org/D29837 llvm-svn: 296065
* Revert r269060 to pacify bots.Michael Kuperstein2017-02-245-435/+13
| | | | llvm-svn: 296064
* Revert r291477 "[Frontend] Correct values of ATOMIC_*_LOCK_FREE to match ↵Hans Wennborg2017-02-242-4/+10
| | | | | | | | | builtin" It caused PR31864. There is a patch in progress to fix that, but let's revert in the meantime. llvm-svn: 296063
* [profiling] PR31992: Don't skip interesting non-base constructorsVedant Kumar2017-02-246-6/+74
| | | | | | | | | Fix the fact that we don't assign profile counters to constructors in classes with virtual bases, or constructors with variadic parameters. Differential Revision: https://reviews.llvm.org/D30131 llvm-svn: 296062
* OptDiag: Add test for r296053Justin Bogner2017-02-241-0/+15
| | | | | | Forgot to commit this with the change. llvm-svn: 296061
* [CGP] Split some critical edges coming out of indirect branchesMichael Kuperstein2017-02-245-13/+435
| | | | | | | | | | | | | | | | | | | | | | Splitting critical edges when one of the source edges is an indirectbr is hard in general (because it requires changing the memory the indirectbr reads). But if a block only has a single indirectbr predecessor (which is the common case), we can simulate splitting that edge by splitting the destination block, and retargeting the *direct* branches. This is motivated by the use of computed gotos in python 2.7: PyEval_EvalFrame() ends up using an indirect branch with ~100 successors, and passing a constant to each of those. Since MachineSink can't break indirect critical edges on demand (and doing this in MIR doesn't look feasible), this causes us to emit about ~100 defs of registers containing constants, which we in the predecessor block, where only one of those constants is used in each successor. So, at each computed goto, we needlessly spill about a 100 constants to stack. The end result is that a clang-compiled python interpreter can be about ~2.5x slower on a simple python reduction loop than a gcc-compiled interpreter. Differential Revision: https://reviews.llvm.org/D29916 llvm-svn: 296060
* [GlobalISel] Use the same name for all remarks.Ahmed Bougacha2017-02-241-2/+2
| | | | | | While there, switch to the explicit ctor. llvm-svn: 296059
* [GlobalISel] Use the DISubprogram for translation failure remarks.Ahmed Bougacha2017-02-242-3/+5
| | | | | | | Justin added support for DISubprogram locs in r295531 and r296052. Use that instead of no-loc for constants and arguments. llvm-svn: 296058
* [GlobalISel] Remove now-unnecessary variable. NFC.Ahmed Bougacha2017-02-241-15/+14
| | | | | | | Since r296047, we're able to return early on failures. Don't track whether we succeeded. llvm-svn: 296057
* [Driver] Move architecture-specific free helper functions to their own files.David L. Jones2017-02-2410-1384/+1584
| | | | | | | | | | | | | | | | | | | | | | | | | | This patch moves helper functions that are CPU-specific out of Driver.cpp and to separate implementation files. The new files are named for the architecture, e.g. ARMArch.cpp. The next step after this will be to move OS-specific code, which I expect will include many of the tool implementations, to similarly separate files. Some CPU-specific functions are not being moved just yet. In cases where the only caller is the platform-specific tools, I plan to move them together. An example is Hexagon, where the only caller of the architecture-specific functions are the tools themselves. (I'm happy to revise this choice, it just seems like less churn to me.) This does mean that some functions which were previously static are now exposed through the library header Driver.h. Reviewers: rsmith, javed.absar Subscribers: aemerson, danalbert, srhines, dschuff, jyknight, nemanjai, mgorny, cfe-commits Differential Revision: https://reviews.llvm.org/D30315 llvm-svn: 296056
* Fix unit tests after r296049.Adrian McCarthy2017-02-241-1/+1
| | | | llvm-svn: 296055
* NFC, Remove commented out block of code from CGBlocks.cppAlex Lorenz2017-02-241-18/+0
| | | | | | | This is a preparation clean-up commit around the code that emits block copy/dispose routines. llvm-svn: 296054
* OptDiag: Summarize the instruction count in asm-printerJustin Bogner2017-02-242-1/+17
| | | | | | | Add an optimization remark to asm-printer that summarizes the number of instructions emitted per function. llvm-svn: 296053
* OptDiag: Use DiagnosticLocation in MachineOptimizationRemarksJustin Bogner2017-02-241-11/+13
| | | | | | | DiagnosticInfo switched from DebugLoc to DiagnosticLocation in r295519, update these subclasses to match. llvm-svn: 296052
* [msan] Test for alloca handling.Evgeniy Stepanov2017-02-241-0/+25
| | | | llvm-svn: 296051
* [msan] Fix instrumentation of array allocas.Evgeniy Stepanov2017-02-242-6/+66
| | | | | | | Before this, MSan poisoned exactly one element of any array alloca, even if the number of elements was zero. llvm-svn: 296050
* Implement some methods for NativeRawSymbolAdrian McCarthy2017-02-247-10/+31
| | | | | | | | | | | This allows the ability to call IPDBSession::getGlobalScope with a NativeSession and to then query it for some basic fields from the PDB's InfoStream. Note that the symbols now have non-const references back to the Session so that NativeRawSymbol can access the PDBFile through the Session. Differential Revision: https://reviews.llvm.org/D30314 llvm-svn: 296049
* NFC, Add a test that ensures that we don't emit helper code in copy/disposeAlex Lorenz2017-02-241-0/+35
| | | | | | | | | | routines for objects that are captured with the __unsafe_unretained ownership qualifier This is a preparation commit that improves code-coverage in code that emits block copy/dispose routines. llvm-svn: 296048
* [GlobalISel] Don't translate other blocks when one failed.Ahmed Bougacha2017-02-231-35/+33
| | | | | | | | | | We were stopping the translation of the parent block when the translation of an instruction failed, but we were still trying to translate the other blocks of the parent function. Don't do that. llvm-svn: 296047
* [GlobalISel] Finalize translated function on scope exit. NFC.Ahmed Bougacha2017-02-231-3/+4
| | | | | | | This is the compromise between having a per-function IRTranslator and manually managing the per-function state. llvm-svn: 296046
* fix 80-column violationAdrian Prantl2017-02-231-1/+2
| | | | llvm-svn: 296045
* Delete outdated comment. NFCXin Tong2017-02-231-2/+1
| | | | llvm-svn: 296043
* [COFF] added test for thinltoBob Haarman2017-02-231-0/+18
| | | | | | | | | | | | | | Summary: Creates bitcode files suitable for use with ThinLTO, then checks that the linker can build an executable from them. Reviewers: ruiu, pcc Reviewed By: pcc Subscribers: mehdi_amini, Prazek, llvm-commits Differential Revision: https://reviews.llvm.org/D30277 llvm-svn: 296042
* LoopUnswitch - Simplify based on known not to a be constant.Xin Tong2017-02-232-3/+102
| | | | | | | | | | | | | | Summary: In case we do not know what the condition is in an unswitched loop, but we know its definitely NOT a known constant. We can perform simplifcations based on this information. Reviewers: sanjoy, hfinkel, chenli, efriedma Reviewed By: efriedma Subscribers: david2050, llvm-commits, mzolotukhin Differential Revision: https://reviews.llvm.org/D28968 llvm-svn: 296041
* NFC, Add a test that ensure that we don't emit helper code in copy/disposeAlex Lorenz2017-02-231-0/+34
| | | | | | | | | routines for variables that are const-captured This is a preparation commit that improves code-coverage in code that emits block copy/dispose routines. llvm-svn: 296040
* [OptDiag] Comment about the legacy status of emitOptimizationRemark*Adam Nemet2017-02-231-24/+37
| | | | | | functions llvm-svn: 296039
* [OptDiag] Remove hotness parameter from legacy remark ctorsAdam Nemet2017-02-231-21/+13
| | | | | | Anything using hotness should be using ORE. llvm-svn: 296038
* [OptDiag] Hide legacy remark ctorsAdam Nemet2017-02-232-66/+104
| | | | | | | These are only used when emitting remarks without ORE directly using the free functions emitOptimizationRemark*. llvm-svn: 296037
* [ADT] Fix zip iterator interface.Bryant Wong2017-02-232-27/+131
| | | | | | | | | | | | This commit provides `zip_{first,shortest}` with the standard member types and methods expected of iterators (e.g., `difference_type`), in order for zip to be used with other adaptors, such as `make_filter_range`. Support for reverse iteration has also been added. Differential Revision: https://reviews.llvm.org/D30246 llvm-svn: 296036
* [IR] Add a Instruction::dropPoisonGeneratingFlags helperSanjoy Das2017-02-233-0/+88
| | | | | | | | | | | | | | | | Summary: The helper will be used in a later change. This change itself is NFC since the only user of this new function is its unit test. Reviewers: majnemer, efriedma Reviewed By: efriedma Subscribers: efriedma, mcrosier, llvm-commits Differential Revision: https://reviews.llvm.org/D30184 llvm-svn: 296035
* [CodeGen] Silence unused variable warning in Release builds.Benjamin Kramer2017-02-231-0/+2
| | | | llvm-svn: 296034
* PR32044: Fix some cases where we would confuse a transparent init-list ↵Richard Smith2017-02-234-4/+34
| | | | | | expression with an aggregate init. llvm-svn: 296033
* [NVPTX] Added support for .f16x2 instructions.Artem Belevich2017-02-2315-153/+2343
| | | | | | | | | | | | | This patch enables support for .f16x2 operations. Added new register type Float16x2. Added support for .f16x2 instructions. Added handling of vectorized loads/stores of v2f16 values. Differential Revision: https://reviews.llvm.org/D30057 Differential Revision: https://reviews.llvm.org/D30310 llvm-svn: 296032
* ARM: make sure FastISel bails on f64 operations for Cortex-M4.Tim Northover2017-02-232-8/+75
| | | | | | | | | | | FastISel wasn't checking the isFPOnlySP subtarget feature before emitting double-precision operations, so it got completely invalid CodeGen for doubles on Cortex-M4F. The normal ISel testing wasn't spectacular either so I added a second RUN line to improve that while I was in the area. llvm-svn: 296031
* Revert r282872 "CVP. Turn marking adds as no wrap on by default"Hans Wennborg2017-02-232-1/+6
| | | | | | | | | | While not CVP's fault, this caused miscompiles (PR31181). Reverting until those are resolved. (This also reverts the follow-ups r288154 and r288161 which removed the flag.) llvm-svn: 296030
* [llvm-cov] Strip redundant path components from filenames (fix PR31982)Vedant Kumar2017-02-233-21/+57
| | | | | | | | | Instead of stripping the longest common prefix off of the filenames in a report, strip out the longest chain of redundant path components. This fixes the case in PR31982, where there are two files with the same prefix, and stripping out the LCP makes things less intelligible. llvm-svn: 296029
* Add call branch annotation for ICP promoted direct call in SamplePGO mode.Dehao Chen2017-02-238-24/+69
| | | | | | | | | | | | | | Summary: SamplePGO uses branch_weight annotation to represent callsite hotness. When ICP promotes an indirect call to direct call, we need to make sure the direct call is annotated with branch_weight in SamplePGO mode, so that downstream function inliner can use hot callsite heuristic. Reviewers: davidxl, eraman, xur Reviewed By: davidxl, xur Subscribers: mehdi_amini, llvm-commits Differential Revision: https://reviews.llvm.org/D30282 llvm-svn: 296028
* Tighten up a regex in a testGeorge Burgess IV2017-02-231-1/+1
| | | | | | | ...If we're trying to match "this function has only two arguments", `.*` probably isn't the best thing to use. :) llvm-svn: 296027
* [Hexagon] Handle saturations in Hexagon bit trackerKrzysztof Parzyszek2017-02-232-0/+71
| | | | llvm-svn: 296026
* [Hexagon] Allow setting register in BitVal without storing into mapKrzysztof Parzyszek2017-02-232-6/+13
| | | | | | | | | | | In the bit tracker, references to other bit values in which the register is 0 are prohibited. This means that generating self-referential register cells like { w:32 [0-15]:s[0-15] [16-31]:s[15] } is impossible. In order to get a self-referential cell, it had to be stored into a map and then reloaded from it. To avoid this step, add a function that will set the register to a given value without going through the map. llvm-svn: 296025
* [CodeGen] Fix ExtParameterInfo bugs in C++ CodeGen code.George Burgess IV2017-02-237-26/+88
| | | | | | | | | | | | | | | | This patch makes use of the prefix/suffix ABI argument distinction that was introduced in r295870, so that we now emit ExtParameterInfo at the correct offset for member calls that have added ABI arguments. I don't see a good way to test the generated param info, since we don't actually seem to use it in CGFunctionInfo outside of Swift. Any suggestions/thoughts for how to better test this are welcome. :) This patch also fixes a small bug with inheriting constructors: if we decide not to pass args into an base class ctor, we would still generate ExtParameterInfo as though we did. The added test-case is for that behavior. llvm-svn: 296024
* Convert EhOutputSection to be a synthetic section.Rafael Espindola2017-02-239-278/+282
| | | | | | | | With this we complete the transition out of special output sections, and with the previous patches it should be possible to merge OutputSectionBase and OuputSection. llvm-svn: 296023
OpenPOWER on IntegriCloud