summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
...
* [AArch64] When combining constant mul of -3, prefer (sub x, (shl x, N)).Chad Rosier2015-03-032-11/+10
| | | | | | This change only effects codegen when the constant is -3. llvm-svn: 231085
* Migrate clang-format-vs plugin project to VS 2013Hans Wennborg2015-03-032-6/+3
| | | | | | | | | | The plugin still works fine in versions starting from 2010, but this was needed to make the project _build_ in VS 2013, which is the blessed version for building LLVM projects these days. http://reviews.llvm.org/D8021 llvm-svn: 231084
* DebugInfo: Move new hierarchy into place (clang)Duncan P. N. Exon Smith2015-03-03118-568/+1108
| | | | | | | Update testcases for LLVM change in r231082 to use the new debug info hierarchy. llvm-svn: 231083
* DebugInfo: Move new hierarchy into placeDuncan P. N. Exon Smith2015-03-03380-8179/+7656
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Move the specialized metadata nodes for the new debug info hierarchy into place, finishing off PR22464. I've done bootstraps (and all that) and I'm confident this commit is NFC as far as DWARF output is concerned. Let me know if I'm wrong :). The code changes are fairly mechanical: - Bumped the "Debug Info Version". - `DIBuilder` now creates the appropriate subclass of `MDNode`. - Subclasses of DIDescriptor now expect to hold their "MD" counterparts (e.g., `DIBasicType` expects `MDBasicType`). - Deleted a ton of dead code in `AsmWriter.cpp` and `DebugInfo.cpp` for printing comments. - Big update to LangRef to describe the nodes in the new hierarchy. Feel free to make it better. Testcase changes are enormous. There's an accompanying clang commit on its way. If you have out-of-tree debug info testcases, I just broke your build. - `upgrade-specialized-nodes.sh` is attached to PR22564. I used it to update all the IR testcases. - Unfortunately I failed to find way to script the updates to CHECK lines, so I updated all of these by hand. This was fairly painful, since the old CHECKs are difficult to reason about. That's one of the benefits of the new hierarchy. This work isn't quite finished, BTW. The `DIDescriptor` subclasses are almost empty wrappers, but not quite: they still have loose casting checks (see the `RETURN_FROM_RAW()` macro). Once they're completely gutted, I'll rename the "MD" classes to "DI" and kill the wrappers. I also expect to make a few schema changes now that it's easier to reason about everything. llvm-svn: 231082
* Lower _mm256_broadcastsi128_si256 directly to a vector shuffle.Juergen Ributzka2015-03-034-10/+2
| | | | | | | | | | | | | | Originally we were using the same GCC builtins to lower this AVX2 vector intrinsic. Instead we will now lower it directly to a vector shuffle. This will not only allow LLVM to generate better code, but it will also allow us to remove the GCC intrinsics. Reviewed by Andrea This is related to rdar://problem/18742778. llvm-svn: 231081
* [SDK modernizer]. Patch fixes driver's lack ofFariborz Jahanian2015-03-032-0/+10
| | | | | | | recognition of mernizer's -objcmt-migrate-property-dot-syntax option with a new test in test/Driver. rdar://19994452 llvm-svn: 231080
* IR: Add missing API to specialized metadata nodesDuncan P. N. Exon Smith2015-03-032-1/+82
| | | | | | | | | | | | | | | | | | | Add the final bits of API that `DIBuilder` needs before the new nodes can be moved into place. - Add `MDType::clone()` and `MDType::setFlags()` to support `DIBuilder::createTypeWithFlags()`. - Add `MDBasicType::get()` overload that just requires a tag and a name, as a convenience for `DIBuilder::createUnspecifiedType()`. - Add `MDLocalVariable::withInline()` and `MDLocalVariable::withoutInline()` to support `llvm::createInlinedVariable()` and `llvm::cleanseInlinedVariable()`. (Somehow these got lost inside the "move into place" patch I'm about to commit -- better to commit separately!) llvm-svn: 231079
* Cleanup provided by Carlo BertolliAndrey Churbanov2015-03-032-3/+4
| | | | llvm-svn: 231078
* Add better tests for ctype<char>::classic_tableMarshall Clow2015-03-031-0/+36
| | | | llvm-svn: 231077
* [libcxx] Add support for linking libc++ against a static ABI library.Eric Fiselier2015-03-034-6/+35
| | | | | | | | | | | | | | | | Summary: This patch add the CMake option `LIBCXX_ENABLE_STATIC_ABI_LIBRARY` which, when enabled, will link libc++ against the static version of the ABI library. Reviewers: mclow.lists, jroelofs, danalbert Reviewed By: danalbert Subscribers: compnerd, cfe-commits Differential Revision: http://reviews.llvm.org/D8017 llvm-svn: 231076
* [libcxxabi] Build both static and shared versions of libc++abi by default.Eric Fiselier2015-03-033-25/+50
| | | | | | | | | | | | | | | | | | | | | | Summary: This patch builds both static and shared versions of libc++abi by default. It adds/repurposes the following cmake options: * `LIBCXXABI_ENABLE_SHARED`: Enable/disable building the shared library. (Previously using `OFF` would build the static library instead) * `LIBCXXABI_ENABLE_STATIC`: Enable/disable building the static library. This patch also re-purposes the CMake target `cxxabi` to be a meta-target for `cxxabi_shared` and `cxxabi_static`. This could potentially break other builds that depend on `cxxabi` being a library target. We will need to apply a patch to libc++'s CMake before committing this change. Running the tests is still only supported when the shared version is built. Support for running the tests against the static library will come in another patch. Reviewers: jroelofs, mclow.lists, danalbert, compnerd Reviewed By: danalbert, compnerd Subscribers: cfe-commits Differential Revision: http://reviews.llvm.org/D8013 llvm-svn: 231075
* Make llvm/test/Object/archive-format.test CRLF-tolerant.NAKAMURA Takumi2015-03-031-5/+4
| | | | llvm-svn: 231074
* [X86][Haswell][SchedModel] Fix patterns for scalar FMA3 variants.Michael Kuperstein2015-03-031-2/+2
| | | | llvm-svn: 231073
* Fix and enable some tests on Linux (MI)Ilia K2015-03-034-24/+34
| | | | | | | | | | | | | | | | | | | | | | | | | | Summary: Fix and enable some lldb-mi tests on Linux: Fixed: # MiExecInterpreterTestCase.test_lldbmi_thread_step_in # MiExecTestCase.test_lldbmi_exec_step # MiStackTestCase.test_lldbmi_stack_info_frame tests. Also I enabled the following tests on Linux: # MiExecTestCase.test_lldbmi_exec_step_instruction # MiSignalTestCase.test_lldbmi_stopped_when_interrupted All test pass on OS X and Linux. Reviewers: abidh, vharron, clayborg Reviewed By: clayborg Subscribers: vharron, lldb-commits, clayborg, abidh Differential Revision: http://reviews.llvm.org/D7987 llvm-svn: 231072
* Improve MiStackTestCase testsIlia K2015-03-031-2/+27
| | | | | | | | | | | | | | | | | Summary: Improve MiStackTestCase tests. All tests pass on OS X. Reviewers: clayborg, abidh Reviewed By: clayborg Subscribers: lldb-commits, clayborg, abidh Differential Revision: http://reviews.llvm.org/D8004 llvm-svn: 231071
* Allow to pass an executable file via lldb-mi arguments (MI)Ilia K2015-03-035-6/+165
| | | | | | | | | | | | | | | | | | | | Summary: # Allow to pass an executable file via lldb-mi arguments # Add tests # Fix (gdb) prompt in CMIDriver::LocalDebugSessionStartupExecuteCommands # Fix prompt in CMIDriver::InterpretCommandThisDriver: use the lldb-mi prompt instead of a hard-coded value. All tests pass on OS X. Reviewers: abidh, clayborg Reviewed By: clayborg Subscribers: lldb-commits, clayborg, abidh Differential Revision: http://reviews.llvm.org/D8001 llvm-svn: 231070
* AVX-512: Moved patterns for masked load/store under avx_store, avx_load classes.Elena Demikhovsky2015-03-032-74/+94
| | | | | | No functional changes. llvm-svn: 231069
* Make -Wuninitialized warn on pointer-to-member and comma operators.Manuel Klimek2015-03-033-13/+94
| | | | | | | | | | | `isTrackedVar` has been updated to also track records. `DeclRefExpr`s appearing on the left side of a comma operator are ignored, while those appearing on the right side are classified as `Use`. Patch by Enrico Pertoso. llvm-svn: 231068
* Make sure we initialize all values in WhitespaceManager::Change.Manuel Klimek2015-03-031-2/+3
| | | | llvm-svn: 231067
* clang-format: Fix access to uninitialized memory.Daniel Jasper2015-03-032-0/+5
| | | | | | | | | With incomplete code, we aren't guaranteed to generated changes for every token. In that case, we need to assume that even the very first change can continue a preprocessor directive and initialize values accordingly. llvm-svn: 231066
* Fix execution of platform shell commands on androidTamas Berghammer2015-03-033-11/+63
| | | | | | | | | | * Add missing functionality to the process launcher * Fixup PATH environment variable to workaround an OS bug * Add default shell path to the host info structure Differential revision: http://reviews.llvm.org/D8009 llvm-svn: 231065
* During PHI elimination, split critical edges that move copies out of loops.Daniel Jasper2015-03-032-8/+51
| | | | | | | | | | | | | | | | | | | | This prevents the behavior observed in llvm.org/PR22369. I am not sure whether I am reading the code correctly, but the early exit based on isLiveOutPastPHIs() seems to make the wrong assumption that RegisterCoalescer won't be able to coalesce those copies later. This change hides the new behavior behind -no-phi-elim-live-out-early-exit as it currently breaks four tests: * Assertion in: CodeGen/Hexagon/hwloop-cleanup.ll * Worse code in: CodeGen/X86/coalescer-commute4.ll CodeGen/X86/phys_subreg_coalesce-2.ll CodeGen/X86/zlib-longest-match.ll The root cause here seems to be that the heuristic that determines the visitation order in RegisterCoalescer gets less lucky. llvm-svn: 231064
* Revert r231008 (and dependent r231019).Daniel Jasper2015-03-033-5/+0
| | | | | | | | | As Chandler responded on the initial commit, just directly setting the triple through -Xclang option to the driver creates havoc on other platforms. The driver test should specifically go into test/Driver and test the cc1 commandline itself. llvm-svn: 231063
* Add range iterators to Extract/InsertValueInst indicesDaniel Berlin2015-03-031-0/+6
| | | | llvm-svn: 231062
* Symbolizer refactoring: Turn FillAddressAndModuleInfo into FillModuleInfoKuba Brecka2015-03-035-12/+7
| | | | | | Reviewed at http://reviews.llvm.org/D8020 llvm-svn: 231061
* [ASTUnit] Fix crash when trying to load a module file via ↵Argyrios Kyrtzidis2015-03-033-5/+18
| | | | | | | | ASTUnit::LoadFromASTFile. rdar://19997358 llvm-svn: 231060
* Switch up whitespace with better whitespace.Nick Lewycky2015-03-031-2/+2
| | | | llvm-svn: 231059
* Revert the non-cleanup part of r230769 because it introduced a ↵Nick Lewycky2015-03-032-3/+2
| | | | | | non-determinism found only in the names of symbols. llvm-svn: 231058
* [ELF] Implement R_X86_64_PC16 relocation.Davide Italiano2015-03-034-1/+72
| | | | | | | | | Yet another chapter in the story. We're getting there, finally. Note for the future: the tests for relocation have a lot of duplication and probably can be unified in a single file. Let's reevaluate this once the support will be complete (hopefully, soon). llvm-svn: 231057
* Cleanup after r230934 per Dave's suggestions.Owen Anderson2015-03-032-5/+5
| | | | llvm-svn: 231056
* [X86] Remove some unused code from disassembler.Craig Topper2015-03-031-12/+0
| | | | llvm-svn: 231055
* Sema: Caught exception objects should be unqualifiedDavid Majnemer2015-03-032-2/+21
| | | | | | | | The exception object should be unqualified. Using a qualified exception object results in the wrong copy constructor getting called when the catch handler executes. llvm-svn: 231054
* Remove obsolete FIXME. override on definitions is fine.Nico Weber2015-03-031-4/+2
| | | | llvm-svn: 231053
* [asan] Since x32 has 32-bit pointers, it should use the same code sequence ↵Kostya Serebryany2015-03-031-2/+2
| | | | | | as ia32 for AddressSanitizer asm_flags test. Patch by H.J. Lu llvm-svn: 231052
* Revert "[ADT] fail-fast iterators for DenseMap"Sanjoy Das2015-03-032-123/+18
| | | | | | This reverts commit r231035. It breaks clang. llvm-svn: 231050
* Sema: Properly initialize the thrown exception objectDavid Majnemer2015-03-034-21/+34
| | | | | | | We would create the exception object with the wrong qualifiers, ensuring that the wrong copy constructor would get called. llvm-svn: 231049
* Fix a crasher where we might have a N_UNDF symbol with no name and this ↵Greg Clayton2015-03-031-0/+2
| | | | | | | | could cause ObjectFileMachO::ParseSymtab() to crash. <rdar://problem/19989491> llvm-svn: 231048
* Add explicit type to empty std::set initializer to fix the libc++ build.Peter Collingbourne2015-03-031-1/+1
| | | | llvm-svn: 231047
* [X86] Special-case 2x CMOV when custom-inserting.Ahmed Bougacha2015-03-033-116/+198
| | | | | | | | | | | | | | | | | | This lets us avoid a few copies that are otherwise hard to get rid of. The way this is done is, the custom-inserter looks at the following instruction for another CMOV, and replaces both at the same time. A previous version used a new CMOV2 opcode, but the custom inserter is expected to be able to return a different basic block anyway, which means it's OK - though far from ideal - to alter that block's contents. Explicitly document that, in case it ever makes a difference. Alternatives welcome! Follow-up to r231045. rdar://19767934 Closes http://reviews.llvm.org/D8019 llvm-svn: 231046
* [X86] Combine (cmov (and/or (setcc) (setcc))) into (cmov (cmov)).Ahmed Bougacha2015-03-033-10/+361
| | | | | | | | | | | | | | | | | | | Fold and/or of setcc's to double CMOV: (CMOV F, T, ((cc1 | cc2) != 0)) -> (CMOV (CMOV F, T, cc1), T, cc2) (CMOV F, T, ((cc1 & cc2) != 0)) -> (CMOV (CMOV T, F, !cc1), F, !cc2) When we can't use the CMOV instruction, it might increase branch mispredicts. When we can, or when there is no mispredict, this improves throughput and reduces register pressure. These can't be catched by generic combines, because the pattern can appear when legalizing some instructions (such as fcmp une). rdar://19767934 http://reviews.llvm.org/D7634 llvm-svn: 231045
* Fix cppeh breakage due to racing commitsReid Kleckner2015-03-032-66/+66
| | | | llvm-svn: 231044
* LowerBitSets: Use byte arrays instead of bit sets to represent in-memory bit ↵Peter Collingbourne2015-03-034-110/+303
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | sets. By loading from indexed offsets into a byte array and applying a mask, a program can test bits from the bit set with a relatively short instruction sequence. For example, suppose we have 15 bit sets to lay out: A (16 bits), B (15 bits), C (14 bits), D (13 bits), E (12 bits), F (11 bits), G (10 bits), H (9 bits), I (7 bits), J (6 bits), K (5 bits), L (4 bits), M (3 bits), N (2 bits), O (1 bit) These bits can be laid out in a 16-byte array like this: Byte Offset 0123456789ABCDEF Bit 7 HHHHHHHHHIIIIIII 6 GGGGGGGGGGJJJJJJ 5 FFFFFFFFFFFKKKKK 4 EEEEEEEEEEEELLLL 3 DDDDDDDDDDDDDMMM 2 CCCCCCCCCCCCCCNN 1 BBBBBBBBBBBBBBBO 0 AAAAAAAAAAAAAAAA For example, to test bit X of A, we evaluate ((bits[X] & 1) != 0), or to test bit X of I, we evaluate ((bits[9 + X] & 0x80) != 0). This can be done in 1-2 machine instructions on x86, or 4-6 instructions on ARM. This uses the LPT multiprocessor scheduling algorithm to lay out the bits efficiently. Saves ~450KB of instructions in a recent build of Chromium. Differential Revision: http://reviews.llvm.org/D7954 llvm-svn: 231043
* Remap arguments and non-alloca values used by outlined C++ exception handlers.Andrew Kaylor2015-03-033-40/+521
| | | | | | Differential Revision: http://reviews.llvm.org/D7844 llvm-svn: 231042
* LoopIdiom: Give globals for memset_pattern16 private linkage.Benjamin Kramer2015-03-032-1/+8
| | | | | | | | There's really no reason to have them have entries in the symbol table anymore. Old versions of ld64 had some bugs in this area but those have been fixed long ago. llvm-svn: 231041
* [Sanitizers] Remove duplication in sanitizer group definition. NFC.Alexey Samsonov2015-03-031-12/+6
| | | | | | | | There is no need to list sanitizers in both "UndefinedTrap" and "Undefined" groups - it turns out using one group in a defintion of another group "just works". llvm-svn: 231040
* Fix typo in my last commit.Matthias Braun2015-03-031-1/+1
| | | | llvm-svn: 231039
* WinEH: Run opt -instnamer over some cppeh tests and update CHECKsReid Kleckner2015-03-033-86/+86
| | | | | | | | | In the future, we should run the output of clang through instnamer to make it easier to manually edit test cases. No functionality change. llvm-svn: 231037
* [SDK modernizer] Patch to fix type of the typed enums whenFariborz Jahanian2015-03-023-3/+17
| | | | | | migrating to NS_ENUM typedef. rdar://19994496 llvm-svn: 231036
* [ADT] fail-fast iterators for DenseMapSanjoy Das2015-03-022-18/+123
| | | | | | | | | | | | | | | | | | | Summary: This patch is an attempt at making `DenseMapIterator`s "fail-fast". Fail-fast iterators that have been invalidated due to insertion into the host `DenseMap` deterministically trip an assert (in debug mode) on access, instead of non-deterministically hitting memory corruption issues. Reviewers: dexonsmith, dberlin, ruiu, chandlerc Reviewed By: chandlerc Subscribers: yaron.keren, chandlerc, llvm-commits Differential Revision: http://reviews.llvm.org/D7931 llvm-svn: 231035
* TLI: Factor out sanitizeFunctionName. NFC.Michael Zolotukhin2015-03-021-6/+14
| | | | llvm-svn: 231034
OpenPOWER on IntegriCloud