summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
...
* [CodeGen] Add some space optimized forms of EmitNode and MorphNodeTo that ↵Craig Topper2016-05-033-11/+33
| | | | | | | | implicitly indicate the number of result VTs. This shaves about 16K off the X86 matching table taking it down to about 470K. Overall this reduces the llc binary size with all in-tree targets by about 40K. llvm-svn: 268365
* [OpenCL] Fix pipe type dump.Xiuli Pan2016-05-035-3/+11
| | | | | | | | | | | | | | Summary: Fix the dump of PipeType. Now we will have "pipe int" and element type. Reviewers: yaxunl, Anastasia Subscribers: cfe-commits, bader Differential Revision: http://reviews.llvm.org/D19524 llvm-svn: 268364
* Fix dependencies on install-libcxx CMake targetEric Fiselier2016-05-031-3/+3
| | | | llvm-svn: 268363
* Fix uppercase typoMatthias Braun2016-05-031-1/+1
| | | | llvm-svn: 268362
* Remove unused header, NFCVedant Kumar2016-05-031-1/+0
| | | | llvm-svn: 268361
* AArch64/optimizeCondBranch: Remove earlier kill flag when forming TBZMatthias Braun2016-05-032-0/+50
| | | | | | | This fixes -verify-machineinstrs complaints when compiling test-suite/SingleSource/Benchmarks/Shootout-C++/wordfreq.cpp llvm-svn: 268360
* Fix PR27538. Remove __is_convertible specializations for array and function ↵Eric Fiselier2016-05-032-37/+46
| | | | | | | | | | | | | types. This patch fixes a bunch of bugs in the fallback implementation of is_convertible, which is used by GCC. Removing the "__is_convertible" specializations for array/function types we fallback on the SFINAE test, which is more correct. See https://llvm.org/bugs/show_bug.cgi?id=27538 llvm-svn: 268359
* test commitJack Liu2016-05-031-1/+1
| | | | llvm-svn: 268358
* [LoopUnroll] Unroll loops which have exit blocks to EH padsDavid Majnemer2016-05-034-16/+56
| | | | | | | | | | | | | We were overly cautious in our analysis of loops which have invokes which unwind to EH pads. The loop unroll transform is safe because it only clones blocks in the loop body, it does not try to split critical edges involving EH pads. Instead, move the necessary safety check to LoopUnswitch. N.B. The safety check for loop unswitch is covered by an existing test which fails without it. llvm-svn: 268357
* [clang-tidy] Cleanup namespace in utils folder.Etienne Bergeron2016-05-0330-63/+93
| | | | | | | | | | | | | | Summary: This is a step forward cleaning up the namespaces in clang-tidy/utils. There is no behavior change. Reviewers: alexfh Subscribers: cfe-commits Differential Revision: http://reviews.llvm.org/D19819 llvm-svn: 268356
* [libcxx] [test] Replace non-Standard "atomic_flag f(false);" with Standard ↵Eric Fiselier2016-05-035-19/+25
| | | | | | | | | | | | | | | | | | "atomic_flag f;" Summary: Replace non-Standard "atomic_flag f(false);" with Standard "atomic_flag f;" in clear tests. Although the value of 'f' is unspecified it shouldn't matter because these tests always call `f.test_and_set()` without checking the result, so the initial state shouldn't matter. The test init03.pass.cpp is explicitly testing this non-Standard extension; It has been moved into the `test/libcxx` directory. Reviewers: mclow.lists, STL_MSFT Subscribers: cfe-commits Differential Revision: http://reviews.llvm.org/D19758 llvm-svn: 268355
* Don't use std::__clz in 'test/support/hexfloat.h'.Eric Fiselier2016-05-031-4/+16
| | | | | | | | | | | std::__clz is a libc++ specific function so it can't be used in the test suite. This patch implements a dumb "count leading zeros" implementation within hexfloat itself. This patch also fixes UB since the output of `__builtin_clz(0)` is undefined according to the GCC docs. llvm-svn: 268354
* ELF: Remove the function SymbolTable<ELFT>::findFile.Peter Collingbourne2016-05-033-19/+1
| | | | | | We already have the function SymbolBody::getSourceFile which does the same thing. llvm-svn: 268353
* [clang-tidy] ProTypeMemberInitCheck - check that field decls do not have ↵Felix Berger2016-05-032-0/+10
| | | | | | | | | | | | in-class initializer. Reviewers: alexfh, JVApen, aaron.ballman Subscribers: flx, aaron.ballman, cfe-commits Differential Revision: http://reviews.llvm.org/D18300 llvm-svn: 268352
* Try harder to get the bots green.Sean Silva2016-05-031-1/+1
| | | | | | | | | | | | | The test is now unexpectedly passing on llvm-clang-lld-x86_64-scei-ps4-ubuntu-fast which is treated as an error. For now, disable Windows testing of the feature. Rafael is working on generating an archive, which will hopefully allow us to turn this test back on. Unfortunately, we don't have a way to temporarily XFAIL this test just on llvm-clang-lld-x86_64-scei-ps4-windows10pro-fast. llvm-svn: 268351
* ELF: Forbid all relative relocations to absolute symbols in PIC, except for ↵Peter Collingbourne2016-05-039-21/+78
| | | | | | | | | | | | | | | | | | weak undefined. Weak undefined symbols resolve to the image base. This is a little strange, but it allows us to link function calls to such symbols. Normally such a call will be guarded with a comparison, which will load a zero from the GOT. There's one example of such a function call in crti.o in Linux's CRT. As part of this change, I also needed to make the synthetic start and end symbols image base relative in the case where their sections were empty, so that PC-relative references to those symbols would continue to work. Differential Revision: http://reviews.llvm.org/D19844 llvm-svn: 268350
* [Clang-tidy] Fix Clang-tidy modernize-use-override and some Include What You ↵Eugene Zelenko2016-05-031-3/+5
| | | | | | Use warnings in modernize/MakeSmartPtrCheck.h. llvm-svn: 268349
* Change operation_not_supported to not_supported.Zachary Turner2016-05-031-1/+1
| | | | | | Apparently operation_not_supported is... not supported everywhere. llvm-svn: 268348
* [codeview] Maintain the type enum-to-classname mapping in the .def fileReid Kleckner2016-05-032-52/+40
| | | | | | This way it will be easy to stamp out something like a type visitor. llvm-svn: 268347
* Guard use of <unistd.h> in test.Eric Fiselier2016-05-031-17/+22
| | | | llvm-svn: 268346
* Temporarily disable this test on ↵Sean Silva2016-05-031-0/+5
| | | | | | | | | | | | | | llvm-clang-lld-x86_64-scei-ps4-windows10pro-fast `REQUIRES: shell` is not appropriate because that would mean that there are no windows bots testing this, and that is precisely where it needs the most testing. Rafael or Rui are working on generating an archive directly, which should avoid this issue. We can try to move the bot to a shorter build directory path. llvm-svn: 268345
* Adding a test for a compiler crash that was fixed in r248069.Douglas Yung2016-05-033-0/+13
| | | | | | Differential Revision: http://reviews.llvm.org/D19048 llvm-svn: 268344
* Parse the TPI (type information) stream of PDB files.Zachary Turner2016-05-0315-5/+308
| | | | | | | | | | | | | | | This parses the TPI stream (stream 2) from the PDB file. This stream contains some header information followed by a series of codeview records. There is some additional complexity here in that alongside this stream of codeview records is a serialized hash table in order to efficiently query the types. We parse the necessary bookkeeping information to allow us to reconstruct the hash table, but we do not actually construct it yet as there are still a few things that need to be understood first. Differential Revision: http://reviews.llvm.org/D19840 Reviewed By: ruiu, rnk llvm-svn: 268343
* Move llvm-readobj/StreamWriter to Support.Zachary Turner2016-05-0315-126/+106
| | | | | | | | | We wish to re-use this from llvm-pdbdump, and it provides a nice way to print structured data in scoped format that could prove useful for many other dumping tools as well. Moving to support and changing name to ScopedPrinter to better reflect its purpose. llvm-svn: 268342
* ThinLTO: do not import function whose linkage prevents inlining.Mehdi Amini2016-05-035-24/+40
| | | | | | | | | | | There is not point in importing a "weak" or a "linkonce" function since we won't be able to inline it anyway. We already had a targeted check for WeakAny, this is using the same check on GlobalValue as the inline, i.e. isMayBeOverriddenLinkage() From: Mehdi Amini <mehdi.amini@apple.com> llvm-svn: 268341
* livePhysRegs: Pass MBB by reference in addLive{Ins|Outs}(); NFCMatthias Braun2016-05-0313-29/+29
| | | | | | | The block must no be nullptr for the addLiveIns()/addLiveOuts() function. llvm-svn: 268340
* Moved test case for r268323 to DebugInfo/X86 to unbreak aarch64.Wolfgang Pieb2016-05-031-0/+0
| | | | llvm-svn: 268339
* Another little example use of scripted thread plans.Jim Ingham2016-05-031-0/+25
| | | | llvm-svn: 268338
* Adding period to the end of a comment to test out commit access.Douglas Yung2016-05-031-1/+1
| | | | llvm-svn: 268337
* LivePhysRegs: Automatically determine presence of pristine regs.Matthias Braun2016-05-0310-35/+43
| | | | | | | | | | | | | | | | | | | | | | Remove the AddPristinesAndCSRs parameters from addLiveIns()/addLiveOuts(). We need to respect pristine registers after prologue epilogue insertion, Seeing that we got this wrong in at least two commits already, we should rather pay the small price to query MachineFrameInfo for it. There are three cases that did not set AddPristineAndCSRs to true even after register allocation: - ExecutionDepsFix: live-out registers are used as a hint that the register is used soon. This is not true for pristine registers so use the new addLiveOutsNoPristines() to maintain this behaviour. - SystemZShortenInst: Not setting AddPristineAndCSRs to true looks like a bug, should do the right thing automatically now. - StackMapLivenessAnalysis: Not adding pristine registers looks like a bug to me. Added a FIXME comment but maintain the current behaviour as a change may need to get coordinated with GC runtimes. llvm-svn: 268336
* MITests: Update libdeps.NAKAMURA Takumi2016-05-031-1/+2
| | | | llvm-svn: 268335
* NFC: An iterator for stepping through CodeView type stream in llvm-readobjAdrian McCarthy2016-05-021-39/+125
| | | | | | | | | | | | This is a small refactoring step toward moving CodeView type stream logic from llvm-readobj to a library. It abstracts the logic of stepping through the stream into an iterator class and updates llvm-readobj to use that iterator. This has no functional change; llvm-readobj produces identical output. The next step is to abstract the parsing of the different leaf types and then move that and the iterator into a library. Since this is my first contrib outside LLDB, please let me know if I'm messing up on any of the LLVM style guidelines, idioms, or patterns. Differential Revision: http://reviews.llvm.org/D19746 llvm-svn: 268334
* Pass all buffers to BuildId hash function at once. NFC.Rui Ueyama2016-05-023-42/+28
| | | | | | | | | This change simplifies the BuildId classes by removing a few member functions and variables from them. It should also make it easy to parallelize hash computation in future because now each BuildId object see all inputs rather than one at a time. llvm-svn: 268333
* Relax stack check as on some platforms demanglers failVitaly Buka2016-05-021-1/+1
| | | | | | | | | | | | | | Summary: On Windows (already fixed) and FreeBSD we have stacks traces without operator(). Reviewers: eugenis Subscribers: llvm-commits Differential Revision: http://reviews.llvm.org/D19427 llvm-svn: 268332
* [MC] Create unique .pdata sections for every .text sectionReid Kleckner2016-05-0214-144/+308
| | | | | | | | | | | | | | | | | | | | | | | | Summary: This adds a unique ID to the COFF section uniquing map, similar to the one we have for ELF. The unique id is not currently exposed via the assembler because we don't have a use case for it yet. Users generally create .pdata with the .seh_* family of directives, and the assembler internally needs to produce .pdata and .xdata sections corresponding to the code section. The association between .text sections and the assembler-created .xdata and .pdata sections is maintained as an ID field of MCSectionCOFF. The CFI-related sections are created with the given unique ID, so if more code is added to the same text section, we can find and reuse the CFI sections that were already created. Reviewers: majnemer, rafael Subscribers: llvm-commits Differential Revision: http://reviews.llvm.org/D19376 llvm-svn: 268331
* Add another failing use-after-scope testVitaly Buka2016-05-021-0/+15
| | | | | | | | | | | Summary: Use after scope is not detected if array larger then 8 bytes. Subscribers: kubabrecka Differential Revision: http://reviews.llvm.org/D19572 llvm-svn: 268330
* Add unittest for LiveIntervalAnalysis::handleMove()Matthias Braun2016-05-022-3/+309
| | | | | | | This re-applies r260905. It requires LiveIntervals to not require LiveVariables which was reverted and re-applied in r267954. llvm-svn: 268329
* [MachineBlockPlacement] Let the target optimize the branches at the end.Quentin Colombet2016-05-022-4/+17
| | | | | | | | | | | | | | | After the layout of the basic blocks is set, the target may be able to get rid of unconditional branches to fallthrough blocks that the generic code does not catch. This happens any time TargetInstrInfo::AnalyzeBranch is not able to analyze all the branches involved in the terminators sequence, while still understanding a few of them. In such situation, AnalyzeBranch can directly modify the branches if it has been instructed to do so. This patch takes advantage of that. llvm-svn: 268328
* [X86] Model FAULTING_LOAD_OP as a terminator and branch.Quentin Colombet2016-05-024-39/+36
| | | | | | | | | | | | | | | | | | | | | | | | | | | This operation may branch to the handler block and we do not want it to happen anywhere within the basic block. Moreover, by marking it "terminator and branch" the machine verifier does not wrongly assume (because of AnalyzeBranch not knowing better) the branch is analyzable. Indeed, the target was seeing only the unconditional branch and not the faulting load op and thought it was a simple unconditional block. The machine verifier was complaining because of that and moreover, other optimizations could have done wrong transformation! In the process, simplify the representation of the handler block in the faulting load op. Now, we directly reference the handler block instead of using a label. This has the benefits of: 1. MC knows how to issue a label for a BB, so leave that to it. 2. Accessing the target BB from its label is painful, whereas it is direct from a MBB operand. Note: The 2 bytes offset in implicit-null-check.ll comes from the fact the unconditional jumps are not removed anymore, as the whole terminator sequence is not analyzable anymore. Will fix it in a subsequence commit. llvm-svn: 268327
* Simplify. NFC.Rafael Espindola2016-05-021-4/+1
| | | | llvm-svn: 268326
* debugserver should fflush its log stream in FileLogCallback, now it does.Greg Clayton2016-05-021-2/+3
| | | | | | <rdar://problem/24728287> llvm-svn: 268325
* Simplify. NFC.Rafael Espindola2016-05-021-2/+1
| | | | llvm-svn: 268324
* DebugInfo: Avoid propagating incorrect debug locations in SelectionDAG via CSE.Wolfgang Pieb2016-05-023-32/+138
| | | | | | | | | | | | | | | | | | Summary: When SelectionDAG performs CSE it is possible that the context's source location is different from that of the selected node. This can lead to incorrect line number records. We update the debug location to the one that occurs earlier in the instruction sequence. This fixes PR21006. Reviewers: echristo, sdmitrouk Subscribers: jevinskie, asl, llvm-commits Differential Revision: http://reviews.llvm.org/D12094 llvm-svn: 268323
* [CMake] Enable LIBCXX HEADERS in Apple-Stage2.cmakeChris Bieneman2016-05-021-1/+1
| | | | | | This enables installing the libcxx headers. llvm-svn: 268322
* Fix argument expansion of reference fields of structsReid Kleckner2016-05-023-1/+27
| | | | | | | | | | | | | | | | | | | r268261 made Clang "expand" more struct arguments on Windows. It removed the check for 'RD->isCLike()', which was preventing us from attempting to expand structs with reference type fields. Our expansion code was attempting to load and pass each field of the type in turn. We were accidentally doing one to many loads on reference type fields. On the function prologue side, we can use EmitLValueForFieldInitialization, which obviously gets the address of the field. On the call side, I tweaked EmitRValueForField directly, since this is the only use of this method. Fixes PR27607 llvm-svn: 268321
* [CMake] Install libcxx-headers as part of the Apple-stage2 distributionChris Bieneman2016-05-021-0/+1
| | | | | | This installs the clang headers as part of the install-distribution target. llvm-svn: 268320
* [CMake] Adding clang-headers to the Apple-stage2 distributionChris Bieneman2016-05-021-0/+1
| | | | | | This installs the clang headers as part of the install-distribution target. llvm-svn: 268319
* Remove unneeded test in tryCaptureAsConstant.Akira Hatanaka2016-05-021-4/+4
| | | | | | | | It isn't necessary to call hasDefaultArg because we can't rematerialize a captured variable that is a function parameter, regardless of whether or not it has a default argument. NFC. llvm-svn: 268318
* Revert "ThinLTO: do not import function whose linkage prevents inlining."Mehdi Amini2016-05-024-38/+22
| | | | | | | This reverts commit r268315, the tests are not passing. From: Mehdi Amini <mehdi.amini@apple.com> llvm-svn: 268317
* [llvm-pdbdump] Fix read past EOF when file is too small.Zachary Turner2016-05-021-0/+4
| | | | llvm-svn: 268316
OpenPOWER on IntegriCloud