summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
...
* Define -DNOMINMAX when running the tests on WindowsEric Fiselier2017-05-311-1/+5
| | | | llvm-svn: 304372
* Add LiveRangeShrink pass to shrink live range within BB.Dehao Chen2017-05-3146-1306/+1582
| | | | | | | | | | | | | | Summary: LiveRangeShrink pass moves instruction right after the definition with the same BB if the instruction and its operands all have more than one use. This pass is inexpensive and guarantees optimal live-range within BB. Reviewers: davidxl, wmi, hfinkel, MatzeB, andreadb Reviewed By: MatzeB, andreadb Subscribers: hiraditya, jyknight, sanjoy, skatkov, gberry, jholewinski, qcolombet, javed.absar, krytarowski, atrick, spatel, RKSimon, andreadb, MatzeB, mehdi_amini, mgorny, efriedma, davide, dberlin, llvm-commits Differential Revision: https://reviews.llvm.org/D32563 llvm-svn: 304371
* [docs] Update name of vectorization interleave flag.Eli Friedman2017-05-311-3/+3
| | | | llvm-svn: 304370
* Simplify. NFC.Rafael Espindola2017-05-311-6/+6
| | | | | | | The sections are ordered, so we can just use the first one when looking for the lowest address. llvm-svn: 304369
* Merge two nested ifs. NFC.Rafael Espindola2017-05-311-11/+9
| | | | llvm-svn: 304368
* [EH] Recognize __(gxx|gcc)_personality_seh0 as the GNU EH personalitiesReid Kleckner2017-05-312-0/+36
| | | | | | | | | These are no-ops when there are no invokes. We don't need to emit LSDAs for them. Fixes PR33220. llvm-svn: 304367
* ImplicitNullChecks: Clear kill/dead flags when moving instructions aroundMatthias Braun2017-05-312-13/+25
| | | | | | | The values are marked as livein in the successor blocks so marking them as killed or dead was wrong. llvm-svn: 304366
* Check hasPersonalityFn before calling getPersonalityFnReid Kleckner2017-05-311-4/+5
| | | | llvm-svn: 304365
* Fix silly mistakes in recent changes made to coroutine testEric Fiselier2017-05-311-4/+2
| | | | llvm-svn: 304364
* [EH] Fix the LSDA that we emit for unknown EH personalitiesReid Kleckner2017-05-313-5/+48
| | | | | | | | | | | | | | We should have a single call site entry with no landing pad. This indicates that no EH action should be taken and the unwinder should unwind to the next frame. We currently don't recognize __gxx_personality_seh0 as a known personality, so we forcibly emit a table, and that table was wrong. This was filed as PR33220. Now we emit a correct table for that personality. The next step is to recognize that we can completely skip the table for this personality. llvm-svn: 304363
* [MachOObject] Fix bind opcode parser error on valid opcode sequenceSteven Wu2017-05-311-1/+1
| | | | | | | BIND_OPCODE_SET_DYLIB_SPECIAL_IMM(0) is a valid way to setp library ordinal. MachOObject should set LibraryOrdinalSet even when IMM is zero. llvm-svn: 304362
* Added LLVM_FALLTHROUGH to address warning: this statement may fall through. NFC.Galina Kistanova2017-05-311-0/+1
| | | | llvm-svn: 304361
* Fix Libc++ build with MinGW64Eric Fiselier2017-05-3112-37/+45
| | | | | | | | | | | | | | Summary: This patch corrects the build errors I encountered when building on MinGW64. Reviewers: mati865, rnk, compnerd, smeenai, bcraig Reviewed By: mati865, smeenai Subscribers: martell, chapuni, cfe-commits Differential Revision: https://reviews.llvm.org/D33082 llvm-svn: 304360
* Remove requirement for libunwind sources. Patch by Shiz.Eric Fiselier2017-05-311-19/+0
| | | | | | | | | As per r241993, libunwind_ext.h is not used anymore, and thus only the public libunwind includes are needed. This eases distro packaging efforts and removes an unneeded requirement for out-of-tree building. Reviewed as D33178 llvm-svn: 304359
* Added LLVM_FALLTHROUGH to address warning: this statement may fall through. NFC.Galina Kistanova2017-05-311-0/+4
| | | | llvm-svn: 304358
* [Libc++] Use #pragma push_macro/pop_macro to better handle min/max on WindowsEric Fiselier2017-05-3150-95/+601
| | | | | | | | | | | | | | | | Summary: This patch improves how libc++ handles min/max macros within the headers. Previously libc++ would undef them and emit a warning. This patch changes libc++ to use `#pragma push_macro` to save the macro before undefining it, and `#pragma pop_macro` to restore the macros and the end of the header. Reviewers: mclow.lists, bcraig, compnerd, EricWF Reviewed By: EricWF Subscribers: cfe-commits, krytarowski Differential Revision: https://reviews.llvm.org/D33080 llvm-svn: 304357
* Added LLVM_FALLTHROUGH to address warning: this statement may fall through. NFC.Galina Kistanova2017-05-311-0/+1
| | | | llvm-svn: 304356
* Added LLVM_FALLTHROUGH to address warning: this statement may fall through. NFC.Galina Kistanova2017-05-311-0/+1
| | | | llvm-svn: 304355
* [BlockGenerator] Translate buildContainsCondition to idiomatic isl C++Tobias Grosser2017-05-311-18/+11
| | | | llvm-svn: 304354
* Avoid a UB pointer overflow in the ArrayRef unit testVedant Kumar2017-05-311-15/+15
| | | | | | | | | | | | The intent of the test is to check that array lengths greater than UINT_MAX work properly. Change the test to stress that scenario, without triggering pointer overflow UB. Caught by a WIP pointer overflow checker in clang. Differential Revision: https://reviews.llvm.org/D33149 llvm-svn: 304353
* Guard against more macros in tchar.hEric Fiselier2017-05-311-1/+7
| | | | llvm-svn: 304352
* Transform the libc++ coroutine shell tests into normal .pass.cpp tests.Eric Fiselier2017-05-3125-107/+15
| | | | | | | | | The shell test versions didn't get all of the flags normal tests do, specifically warning flags. This patch makes them .pass.cpp tests, and uses a lit.local.cfg to add -fcoroutines-ts and to make them UNSUPPORTED when that flag isn't available. llvm-svn: 304351
* Revert rL304050. It may break sanitizer bootstrap. Revert it for now while ↵Wei Mi2017-05-315-278/+26
| | | | | | investigating. llvm-svn: 304350
* Try to fix buildbotsMatthias Braun2017-05-311-1/+3
| | | | | | | | It seems not all of our bots have a std::vector::erase() taking a const_iterator (even though that seems to be part of C++11) attempt to workaround. llvm-svn: 304349
* Remove uses of _UI because Windows is evil and tchar.h #define's itEric Fiselier2017-05-313-111/+113
| | | | llvm-svn: 304348
* [TableGen] Adapt more places to getValueAsString now returning a StringRef ↵Craig Topper2017-05-3113-75/+78
| | | | | | instead of a std::string. llvm-svn: 304347
* [modules] When compiling a preprocessed module map, look for headers relativeRichard Smith2017-05-317-21/+48
| | | | | | | | | | | | to the original module map. Also use the path and name of the original module map when emitting that information into the .pcm file. The upshot of this is that the produced .pcm file will track information for headers in their original locations (where the module was preprocessed), not relative to whatever directory the preprocessed module map was in when it was built. llvm-svn: 304346
* [clang-cl] Expose -nostdinc and -nobuiltinincReid Kleckner2017-05-312-2/+16
| | | | | | | | | These are already wired up to work in the MSVC toolchain header search code. However, they were unreachable from clang-cl. A user attempted to use them in https://bugs.llvm.org/show_bug.cgi?id=33205, so let's expose them. llvm-svn: 304345
* Fix for KMP_AFFINITY=disabled and KMP_TOPOLOGY_METHOD=hwlocJonathan Peyton2017-05-314-1/+36
| | | | | | | | | | | | With these settings, the create_hwloc_map() method was being called causing an assert(). After some consideration, it was determined that disabling affinity explicitly should just disable hwloc as well. i.e., KMP_AFFINITY overrides KMP_TOPOLOGY_METHOD. This lets the user know that the Hwloc mechanism is being ignored when KMP_AFFINITY=disabled. Differential Revision: https://reviews.llvm.org/D33208 llvm-svn: 304344
* Address default pinning OpenMP process with multiple processor groupsJonathan Peyton2017-05-311-2/+30
| | | | | | | | | | | | | | | | | | | This change checks if the initial affinity mask is equal to exactly one Windows processor group's affinity mask. If it is, then the code does not respect the initial affinity mask and uses the entire machine instead. The reasoning behind this is that, by default, Windows assigns exactly one processor group as the initial affinity mask even when there are multiple Windows processor groups available. User's typically want to use the whole machine, so we ignore this special case and use the entire machine. If the initial affinity mask is a proper subset of one group, or spans multiple groups, then the initial affinity mask is respected since we can assume that the operating system did not assign this initial affinity mask. This change only affects machines with multiple processor groups Differential Revision: https://reviews.llvm.org/D33210 llvm-svn: 304343
* X86FloatingPoint: Fix livein listsMatthias Braun2017-05-313-15/+29
| | | | | | | | | | | | After transforming FP to ST registers: - Do not add the ST register to the livein lists, they are reserved so we do not need to track their liveness. - Remove the FP registers from the livein lists, they don't have defs or uses anymore and so are not live. - (The setKillFlags() call is moved to an earlier place as it relies on the FP registers still being present in the livein list.) llvm-svn: 304342
* X86FloatingPoint: Add some static assert, cleanup; NFCMatthias Braun2017-05-311-2/+6
| | | | llvm-svn: 304341
* Added missing break; added LLVM_FALLTHROUGH to address warning: this ↵Galina Kistanova2017-05-311-0/+2
| | | | | | statement may fall through. NFC. llvm-svn: 304340
* Move clearOutputSections earlier.Rafael Espindola2017-05-312-2/+7
| | | | | | | Another step into merging the linker script and non linker script code paths. llvm-svn: 304339
* Store a single Parent pointer for InputSectionBase.Rafael Espindola2017-05-3110-88/+108
| | | | | | | | | | | | | | | Before InputSectionBase had an OutputSection pointer, but that was not always valid. For example, if it was a merge section one actually had to look at MergeSec->OutSec. This was brittle and caused bugs like the one fixed by r304260. We now have a single Parent pointer that points to an OutputSection for InputSection, but to a SyntheticSection for merge sections and .eh_frame. This makes it impossible to accidentally access an invalid OutSec. llvm-svn: 304338
* Fix cl-diagnostics.c test by hardcoding the version of MSVC to mimicReid Kleckner2017-05-311-2/+2
| | | | llvm-svn: 304337
* Add test case for r304316 which implemented clang-cl /diagnostics:*Reid Kleckner2017-05-311-0/+28
| | | | llvm-svn: 304336
* Don't try to spill static allocas when emitting expr cleanups with branchesReid Kleckner2017-05-312-1/+36
| | | | | | | | | | | | | | | | | | Credit goes to Gor Nishanov for putting together the fix in https://reviews.llvm.org/D33733! This patch is essentially me patching it locally and writing some test cases to convince myself that it was necessary for GNU statement expressions with branches as well as coroutines. I'll ask Gor to land his patch with just the coroutines test. During LValue expression evaluation, references can be bound to anything, really: call results, aggregate temporaries, local variables, global variables, or indirect arguments. We really only want to spill instructions that were emitted as part of expression evaluation, and static allocas are not that. llvm-svn: 304335
* Simplify. NFC.Rafael Espindola2017-05-311-3/+2
| | | | llvm-svn: 304334
* [libFuzzer] fix a test to match the new sanitizer run-timeKostya Serebryany2017-05-311-4/+4
| | | | llvm-svn: 304333
* Added LLVM_FALLTHROUGH to address warning: this statement may fall through. NFC.Galina Kistanova2017-05-311-0/+4
| | | | llvm-svn: 304332
* [coroutines] Fix assertion during -Wuninitialized analysisEric Fiselier2017-05-313-1/+46
| | | | | | | | | | | | | | Summary: @rsmith Is there a better place to put this test? Reviewers: GorNishanov, rsmith Reviewed By: GorNishanov Subscribers: cfe-commits, rsmith Differential Revision: https://reviews.llvm.org/D33660 llvm-svn: 304331
* Simplify. NFC.Rafael Espindola2017-05-311-4/+2
| | | | llvm-svn: 304330
* [IR] Add additional addParamAttr/removeParamAttr to AttributeList APIReid Kleckner2017-05-318-96/+322
| | | | | | | | | | | | | | | | | | | Summary: Fairly straightforward patch to fill in some of the holes in the attributes API with respect to accessing parameter/argument attributes. The patch aims to step further towards encapsulating the idx+FirstArgIndex pattern to access these attributes to within the AttributeList. Patch by Daniel Neilson! Reviewers: rnk, chandlerc, pete, javed.absar, reames Subscribers: llvm-commits Differential Revision: https://reviews.llvm.org/D33355 llvm-svn: 304329
* Simplify. NFC.Rafael Espindola2017-05-311-2/+1
| | | | llvm-svn: 304328
* Fix a crash.Rafael Espindola2017-05-315-7/+28
| | | | | | | | We would crash if a SHF_LINK_ORDER section pointed to a non InputSection section. Since those sections are not merged in order, SHF_LINK_ORDER is pretty meaningless and we can error on that case. llvm-svn: 304327
* [TableGen] Clang changes to support Record::getValueAsString and ↵Craig Topper2017-05-314-31/+39
| | | | | | | | | | getValueAsListOfStrings returning StringRef instead of std::string This is the clang version of D33710. Differential Revision: https://reviews.llvm.org/D33711 llvm-svn: 304326
* [TableGen] Make Record::getValueAsString and getValueAsListOfStrings return ↵Craig Topper2017-05-318-29/+37
| | | | | | | | | | | | StringRefs instead of std::string Internally both these methods just return the result of getValue on either a StringInit or a CodeInit object. In both cases this returns a StringRef pointing to a string allocated in the BumpPtrAllocator so its not going anywhere. So we can just pass that StringRef along. This is a fairly naive patch that targets just the build failures caused by this change. There's additional work that can be done to avoid creating std::string at call sites that still think getValueAsString returns a std::string. I'll try to clean those up in future patches. Differential Revision: https://reviews.llvm.org/D33710 llvm-svn: 304325
* [BPF] Correct the file name of the -gen-asm-matcher output file to not start ↵Craig Topper2017-05-311-1/+1
| | | | | | with X86. llvm-svn: 304324
* [ThinLTO] Reduce unnecessary map lookups during combined summary writeTeresa Johnson2017-05-312-32/+37
| | | | | | | | | | | | | | | | | | | Summary: Don't assign values to undefined references, simply don't emit those reference edges as they are not useful (we were already not emitting call edges to undefined refs). Also, streamline the later lookup of value ids when writing the summaries, by combining the check for value id existence with the access of that value id. Reviewers: pcc Subscribers: Prazek, llvm-commits, inglorion Differential Revision: https://reviews.llvm.org/D33634 llvm-svn: 304323
OpenPOWER on IntegriCloud