summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
...
* Wdocumentation fixSimon Pilgrim2016-12-081-1/+1
| | | | llvm-svn: 289038
* Wdocumentation fixSimon Pilgrim2016-12-081-1/+1
| | | | llvm-svn: 289037
* Add a comment consumer mechanism to MCAsmLexerOliver Stannard2016-12-083-1/+36
| | | | | | | | | This allows clients to register an AsmCommentConsumer with the MCAsmLexer, which receives a callback each time a comment is parsed. Differential Revision: https://reviews.llvm.org/D27511 llvm-svn: 289036
* [X86][SSE] Add vector test for (shl (or x, c1), c2) -> (or (shl x, c2), c1 ↵Simon Pilgrim2016-12-081-0/+36
| | | | | | << c2) detailed in D19325 llvm-svn: 289035
* Add more test cases to packaged_task copyability testEric Fiselier2016-12-081-2/+4
| | | | llvm-svn: 289034
* Avoid C++17 guaranteed copy elision when testing for non-copyabilityEric Fiselier2016-12-082-3/+4
| | | | llvm-svn: 289033
* Support of mips & mips64 for openmprtlSylvestre Ledru2016-12-0818-19/+101
| | | | | | | | | | | | | | Summary: Implemented by Dejan Latinovic See https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=790735 for more more information Reviewers: AndreyChurbanov, jlpeyton Subscribers: openmp-commits, mgorny Differential Revision: https://reviews.llvm.org/D26576 llvm-svn: 289032
* [AVR] Add MIR tests for a few pseudo instructionsDylan McKay2016-12-083-0/+72
| | | | llvm-svn: 289031
* [AVR] Add an assertion to ensure we don't emit LPM when it's unsupportedDylan McKay2016-12-081-0/+2
| | | | llvm-svn: 289030
* Fix PR30323: numeric_limits<T>::max_digits10 when using 16 bit ints.Eric Fiselier2016-12-081-3/+3
| | | | | | | | | | | | Summary: Also see https://llvm.org/bugs/show_bug.cgi?id=30323 Reviewers: mclow.lists Subscribers: cfe-commits Differential Revision: https://reviews.llvm.org/D27566 llvm-svn: 289029
* Fix _LIBCPP_VERSION tests with modules on DarwinEric Fiselier2016-12-081-5/+8
| | | | llvm-svn: 289028
* [MSAN][MIPS] Fix fork.cc test on MIPSSagar Thakur2016-12-087-38/+69
| | | | | | | | | Summary: For platforms which support slow unwinder only, we restrict the store context size to 1, basically only storing the current pc. We do this because the slow unwinder which is based on libunwind is not async signal safe and causes random freezes in forking applications as well as in signal handlers. Reviewed by eugenis. Differential: D23107 llvm-svn: 289027
* When we interrupt a process, it was possible or the thread namesJason Molenda2016-12-084-5/+187
| | | | | | | | | | | | | | | | | | to not be set by Process::WillPublicStop() so the driver won't get access to them. The fix is straightforward, moving the call to WillPublicStop above the early return for the interrupt case. (the interrupt case does an early return because the rest of the function is concerned with running stop hooks etc and those are not applicable when we've interrupted the process). Also added a test case for it. The test case is a little complicated because I needed to drive lldb asynchronously to give the program a chance to get up and running before I interrupt it. Running to a breakpoint was not sufficient to catch this bug. <rdar://problem/22693778> llvm-svn: 289026
* [ELF][MIPS] Make _gp, _gp_disp, __gnu_local_gp global symbolsSimon Atanasyan2016-12-0819-57/+102
| | | | | | | | | | | | | | These MIPS specific symbols should be global because in general they can have an arbitrary value. By default this value is a fixed offset from .got section. This patch adds more checks to the mips-gp-local.s test case but marks it as XFAIL because LLD does not allow redefinition of absolute symbols value by a linker script. This should be fixed by D27276. Differential revision: https://reviews.llvm.org/D27524 llvm-svn: 289025
* LTO: Hash the parts of the LTO configuration that affect code generation.Peter Collingbourne2016-12-085-3/+113
| | | | | | | | | Most importantly, we need to hash the relocation model, otherwise we can end up trying to link non-PIC object files into PIEs or DSOs. Differential Revision: https://reviews.llvm.org/D27556 llvm-svn: 289024
* Increase timeout for Frontboard app launch request from 9 to 20 secondsJason Molenda2016-12-081-1/+1
| | | | | | to match other timeouts. llvm-svn: 289023
* [DOXYGEN] Improved doxygen comments for avxintrin.h intrinsics.Ekaterina Romanova2016-12-081-135/+142
| | | | | | | Tagged parameter names with \a doxygen command to display them in italics. Formatted comments to fit into 80 chars. llvm-svn: 289022
* [c++1z] P0490R0, NB comment GB 20: if std::tuple_size<T> is complete, use theRichard Smith2016-12-082-6/+3
| | | | | | | | tuple-like interpretation of decomposition declaration even if there is no ::value member. We already did this, anticipating this resolution, just update comments and tweak a testcase. llvm-svn: 289021
* Delete dead code.Rafael Espindola2016-12-082-13/+2
| | | | | | Thanks to George Rimar for pointing it out. llvm-svn: 289020
* [c++1z] P0003R5: Removing dynamic exception specifications.Richard Smith2016-12-0815-27/+77
| | | | | | | | | | | | | | | | | | We continue to support dynamic exception specifications in C++1z as an extension, but produce an error-by-default warning when we encounter one. This allows users to opt back into the feature with a warning flag, and implicitly opts system headers back into the feature should they happen to use it. There is one semantic change implied by P0003R5 but not implemented here: violating a throw() exception specification should now call std::terminate directly instead of calling std::unexpected(), but since P0003R5 also removes std::unexpected() and std::set_unexpected, and the default unexpected handler calls std::terminate(), a conforming C++1z program cannot tell that we are still calling it. The upside of this strategy is perfect backwards compatibility; the downside is that we don't get the more efficient 'noexcept' codegen for 'throw()'. llvm-svn: 289019
* [Headers] Enable #include_next<float.h> on DarwinBruno Cardoso Lopes2016-12-083-2/+24
| | | | | | | | | Allows darwin targets to provide additional definitions and implementation specifc values for float.h rdar://problem/21961491 llvm-svn: 289018
* Unbreak buildbots where the debug info test was crashing due to unchecked error.Greg Clayton2016-12-081-4/+5
| | | | llvm-svn: 289017
* Set the address size based on the target's arch insteadJason Molenda2016-12-081-3/+2
| | | | | | | of using the address of the all_image_infos struct. <rdar://problem/29547847> llvm-svn: 289016
* Convert CommandObjectFrame to entry-based Args access.Zachary Turner2016-12-081-37/+22
| | | | | | | | In the process, discovered a bug related to the use of an uninitialized-pointer, and fixed as suggested by Enrico in an lldb-dev mailing list thread. llvm-svn: 289015
* Revert "[CodeGen] Fix invalid DWARF info on Win64"Keno Fischer2016-12-0813-72/+35
| | | | | | Appears to break on build bots. Reverting pending investigation. llvm-svn: 289014
* [CodeGen] Fix invalid DWARF info on Win64Keno Fischer2016-12-0813-35/+72
| | | | | | | | | | | | | | | The relocations for `DIEEntry::EmitValue` were wrong for Win64 (emitting FK_Data_4 instead of FK_SecRel_4). This corrects that oversight so that the DWARF data is correct in Win64 COFF files. Fixes PR15393. Patch by Jameson Nash <jameson@juliacomputing.com> based on a patch by David Majnemer. Differential Revision: https://reviews.llvm.org/D21731 llvm-svn: 289013
* Convert CommandObjectCommands to entry-based Args access.Zachary Turner2016-12-081-168/+154
| | | | llvm-svn: 289012
* Loosen checks for _MSC_FULL_VER under -fms-extensions.David L. Jones2016-12-081-1/+1
| | | | | | | | | | | | Summary: On actual Windows hosts :-) , this could report something other than the fallback, with a non-zero minor/build number. Reviewers: rnk, llvm-commits Differential Revision: https://reviews.llvm.org/D27554 llvm-svn: 289011
* Make a DWARF generator so we can unit test DWARF APIs with gtest.Greg Clayton2016-12-0814-151/+1646
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The only tests we have for the DWARF parser are the tests that use llvm-dwarfdump and expect output from textual dumps. More DWARF parser modification are coming in the next few weeks and I wanted to add tests that can verify that we can encode and decode all form types, as well as test some other basic DWARF APIs where we ask DIE objects for their children and siblings. DwarfGenerator.cpp was added in the lib/CodeGen directory. This file contains the code necessary to easily create DWARF for tests: dwarfgen::Generator DG; Triple Triple("x86_64--"); bool success = DG.init(Triple, Version); if (!success) return; dwarfgen::CompileUnit &CU = DG.addCompileUnit(); dwarfgen::DIE CUDie = CU.getUnitDIE(); CUDie.addAttribute(DW_AT_name, DW_FORM_strp, "/tmp/main.c"); CUDie.addAttribute(DW_AT_language, DW_FORM_data2, DW_LANG_C); dwarfgen::DIE SubprogramDie = CUDie.addChild(DW_TAG_subprogram); SubprogramDie.addAttribute(DW_AT_name, DW_FORM_strp, "main"); SubprogramDie.addAttribute(DW_AT_low_pc, DW_FORM_addr, 0x1000U); SubprogramDie.addAttribute(DW_AT_high_pc, DW_FORM_addr, 0x2000U); dwarfgen::DIE IntDie = CUDie.addChild(DW_TAG_base_type); IntDie.addAttribute(DW_AT_name, DW_FORM_strp, "int"); IntDie.addAttribute(DW_AT_encoding, DW_FORM_data1, DW_ATE_signed); IntDie.addAttribute(DW_AT_byte_size, DW_FORM_data1, 4); dwarfgen::DIE ArgcDie = SubprogramDie.addChild(DW_TAG_formal_parameter); ArgcDie.addAttribute(DW_AT_name, DW_FORM_strp, "argc"); // ArgcDie.addAttribute(DW_AT_type, DW_FORM_ref4, IntDie); ArgcDie.addAttribute(DW_AT_type, DW_FORM_ref_addr, IntDie); StringRef FileBytes = DG.generate(); MemoryBufferRef FileBuffer(FileBytes, "dwarf"); auto Obj = object::ObjectFile::createObjectFile(FileBuffer); EXPECT_TRUE((bool)Obj); DWARFContextInMemory DwarfContext(*Obj.get()); This code is backed by the AsmPrinter code that emits DWARF for the actual compiler. While adding unit tests it was discovered that DIEValue that used DIEEntry as their values had bugs where DW_FORM_ref1, DW_FORM_ref2, DW_FORM_ref8, and DW_FORM_ref_udata forms were not supported. These are all now supported. Added support for DW_FORM_string so we can emit inlined C strings. Centralized the code to unique abbreviations into a new DIEAbbrevSet class and made both the dwarfgen::Generator and the llvm::DwarfFile classes use the new class. Fixed comments in the llvm::DIE class so that the Offset is known to be the compile/type unit offset. DIEInteger now supports more DW_FORM values. There are also unit tests that cover: Encoding and decoding all form types and values Encoding and decoding all reference types (DW_FORM_ref1, DW_FORM_ref2, DW_FORM_ref4, DW_FORM_ref8, DW_FORM_ref_udata, DW_FORM_ref_addr) including cross compile unit references with that go forward one compile unit and backward on compile unit. Differential Revision: https://reviews.llvm.org/D27326 llvm-svn: 289010
* Work around a bogus warning on MSVC.Zachary Turner2016-12-081-0/+12
| | | | llvm-svn: 289009
* CFI-icall on ThumbEvgeniy Stepanov2016-12-082-20/+42
| | | | | | | | | | | | Replace @progbits in the section directive with %progbits, because "@" starts a comment on arm/thumb. Use b.w branch instruction. Use .thumb_function and .thumb_set for proper arm/thumb interwork. This way jumptable entry addresses on thumb have bit 0 set (correctly). This does not affect CFI check math, because the address of the jumptable start also has that bit set. This does not work on thumbv5, because it does not support b.w, and the linker would not insert a veneer (trampoline?) to extend the range of b.n. We may need to do full-range plt-style jumptables on thumbv54, which are 12 bytes per entry. Another option is "push lr; bl; pop pc" (4 bytes) but that needs unwinding instructions, etc. Differential Revision: https://reviews.llvm.org/D27499 llvm-svn: 289008
* LTO: Remove the unused Config::Features field.Peter Collingbourne2016-12-081-1/+0
| | | | | | We are currently initializing Features via MAttrs. llvm-svn: 289007
* Improve crashlog.py so it can handle more iOS crashlog files.Greg Clayton2016-12-081-0/+11
| | | | | | <rdar://problem/29191857> llvm-svn: 289006
* [Driver][Darwin] Disable default stack protector levels in freestanding mode.Bruno Cardoso Lopes2016-12-082-1/+21
| | | | | | | | | Currently -fstack-protector is on by default when using -ffreestanding. Change the default behavior to have it off when using -ffreestanding. rdar://problem/14089363 llvm-svn: 289005
* The few days mentioned in r267095 are overMatthias Braun2016-12-081-1/+0
| | | | llvm-svn: 289004
* TargetPassConfig: Rename DisablePostRA -> DisablePostRASched; NFCMatthias Braun2016-12-081-3/+3
| | | | llvm-svn: 289003
* LivePhysReg: Use reference instead of pointer in init(); NFCMatthias Braun2016-12-088-15/+14
| | | | llvm-svn: 289002
* [InlineSpiller] Don't call TargetInstrInfo::foldMemoryOperand with an empty ↵Quentin Colombet2016-12-082-0/+27
| | | | | | | | list. Since r287792 if we try to do that we will hit an assert. llvm-svn: 289001
* Fix an unannotated fallthrough that was causing a warning.Greg Clayton2016-12-071-1/+2
| | | | llvm-svn: 289000
* Fixed DoConnectRemote issues where ProcessKDP wasn't switched over to use ↵Greg Clayton2016-12-072-53/+54
| | | | | | the version that needed a StringRef as the URL, and also updated all virtual functions to say "override" to make sure this doesn't happen again. llvm-svn: 288999
* Refactor how the MSVC toolchain searches for a compatibility version.David L. Jones2016-12-076-88/+97
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Summary: The MSVC toolchain and Clang driver combination currently uses a fairly complex sequence of steps to determine the MS compatibility version to pass to cc1. There is some oddness in this sequence currently, with some code which inspects flags in the toolchain, and some code which inspects the triple and local environment in the driver code. This change is an attempt to consolidate most of this logic so that Win32-specific code lives in MSVCToolChain.cpp. I'm not 100% happy with the split, so any suggestions are welcome. There are a few things you might want to watch for for specifically: - On all platforms, if MSVC compatibility flags are provided (and valid), use those. - The fallback sequence should be the same as before, but is now consolidated into MSVCToolChain::getMSVCVersion: - Otherwise, try to use the Triple. - Otherwise, on Windows, check the executable. - Otherwise, on Windows or with --fms-extensions, default to 18. - Otherwise, we can't determine the version. - MSVCToolChain::ComputeEffectiveTriple no longer calls the base ToolChain::ComputeEffectiveClangTriple. The only thing it would change for Windows the architecture, which we don't care about for the compatibility version. - I'm not sure whether this is philosophically correct (but it should be easy to add back to MSVCToolChain::getMSVCVersionFromTriple if not). - Previously, Tools.cpp just called getTriple() anyhow, so it doesn't look like the effective triple was always being used previously anyhow. Reviewers: hans, compnerd, llvm-commits, rnk Subscribers: amccarth Differential Revision: https://reviews.llvm.org/D27477 llvm-svn: 288998
* Add more tests for MSVC version handling.David L. Jones2016-12-072-0/+11
| | | | | | | | | | | | | | | | | Summary: This change adds more test cases for the default MSVC compatibility version: 1. When -fms-extensions is supplied, but -fmsc-version and -fms-compatibility-version are not. 2. With the target triple specifies an MSVC environment, but no other -fms* flags. Reviewers: rnk, llvm-commits Subscribers: hans, compnerd, amccarth Differential Revision: https://reviews.llvm.org/D27498 llvm-svn: 288997
* Remove redundant call of std::unique_ptr::get.Rui Ueyama2016-12-071-1/+1
| | | | | | Obj is an instance of std::unique_ptr, so *Obj.get() is the same as *Obj. llvm-svn: 288996
* Fix Windows buildbots.Rui Ueyama2016-12-071-1/+1
| | | | | | | clang-format-diff sorted these #include's in the asciibetical order, but they need to be in this order. llvm-svn: 288995
* [Driver] Add tests for default stack protector values on DarwinBruno Cardoso Lopes2016-12-071-0/+15
| | | | llvm-svn: 288994
* Make demangle() return None instead of "" if a given string is not a mangled ↵Rui Ueyama2016-12-074-8/+11
| | | | | | symbol. llvm-svn: 288993
* COFF: Define overloaded toString functions.Rui Ueyama2016-12-0711-67/+166
| | | | | | | | | | | | | Previously, we had different way to stringize SymbolBody and InputFile to construct error messages. This patch defines overloaded function toString() so that we don't need to memorize all these different function names. With that change, it is now easy to include demangled names in error messages. Now, if there is a symbol name conflict, we'll print out both mangled and demangled names. llvm-svn: 288992
* [asan] Split load and store checks in test. NFCIFilipe Cabecinhas2016-12-071-62/+62
| | | | llvm-svn: 288991
* [yaml2obj] Refactor and abstract yaml2dwarf functionsChris Bieneman2016-12-074-15/+53
| | | | | | This abstracts the code for emitting DWARF binary from the DWARFYAML types into reusable interfaces that could be used by ELF and COFF. llvm-svn: 288990
* [ADT, IR] Fix some Clang-tidy modernize-use-equals-delete and Include What ↵Eugene Zelenko2016-12-0714-179/+287
| | | | | | You Use warnings; other minor fixes (NFC). llvm-svn: 288989
OpenPOWER on IntegriCloud