summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
...
* [WebAssembly] Initial linking support.Dan Gohman2015-12-164-2/+60
| | | | | | | | | This begins minimal support for invoking 'ld' from clang for WebAssembly targets. Differential Revision: http://reviews.llvm.org/D15586 llvm-svn: 255848
* [WebAssembly] Fix legalization of shift operators on large integer types.Dan Gohman2015-12-162-0/+16
| | | | llvm-svn: 255847
* Simplify. NFC.Rui Ueyama2015-12-161-4/+1
| | | | llvm-svn: 255846
* ELF: Remove duplicate code.Rui Ueyama2015-12-162-36/+31
| | | | | | | We had duplicate code that were called before addMemberFile. This patch makes them to be called at beginning of addMemberFile. llvm-svn: 255845
* [WebAssembly] Implement eliminateCallFramePseudoDerek Schuff2015-12-168-37/+71
| | | | | | | | | | | | | | | | | | Summary: Implement eliminateCallFramePsuedo to handle ADJCALLSTACKUP/DOWN pseudo-instructions. Add a test calling a vararg function which causes non-0 adjustments. This revealed an issue with RegisterCoalescer wherein it eliminates a COPY from SP32 to a vreg but failes to update the live ranges of EXPR_STACK, causing a machineinstr verifier failure (so this test is commented out). Also add a dynamic alloca test, which causes a callseq_end dag node with a 0 (instead of undef) second argument to be generated. We currently fail to select that, so adjust the ADJCALLSTACKUP tablegen code to handle it. Differential Revision: http://reviews.llvm.org/D15587 llvm-svn: 255844
* Update for llvm api change.Rafael Espindola2015-12-161-2/+2
| | | | llvm-svn: 255843
* Change linkInModule to take a std::unique_ptr.Rafael Espindola2015-12-1615-66/+136
| | | | | | | Passing in a std::unique_ptr should help find errors when the module is used after being linked into another module. llvm-svn: 255842
* Fix funciton->function typo.Eric Christopher2015-12-163-3/+3
| | | | llvm-svn: 255841
* Fix funciton->function typo.Eric Christopher2015-12-163-4/+4
| | | | llvm-svn: 255840
* ELF: Remove SymbolTable::addELFFile.Rui Ueyama2015-12-162-30/+24
| | | | | | | | addELFFile was called only from addFile, and what it did was actually just adding a file to the symbol table. There seems to be no reason to separate the two. llvm-svn: 255839
* Update for llvm API change.Rafael Espindola2015-12-162-2/+0
| | | | llvm-svn: 255838
* Drop an unnecessary use of writev.Rafael Espindola2015-12-162-30/+2
| | | | | | | | | | | It looks like the code this patch deletes is based on a misunderstanding of what guarantees writev provides. In particular, writev with 1 iovec is not "more atomic" than a write. Testing on OS X shows that both write and writev from multiple processes can be intermixed. llvm-svn: 255837
* [AArch64] Simplify some TRI/TII getters. NFC.Ahmed Bougacha2015-12-161-7/+6
| | | | | | We don't need static_casts when we use the right Subtarget. llvm-svn: 255836
* Fix negDelta32 relocatable fixups for arm64 in mach-o.Pete Cooper2015-12-162-1/+125
| | | | | | | | | | | negDelta32 is only ever implicitly generated as the FDE->CIE reference. We therefore don't emit a relocation for it in the object file in -r mode. The value we write in to the FDE location therefore needs to point to the final target address of the CIE, and not the inAtomAddress as it was currently doing. llvm-svn: 255835
* Move llvm/test/DebugInfo/live-debug-values.ll into X86, due to target triple.NAKAMURA Takumi2015-12-161-0/+0
| | | | llvm-svn: 255834
* Do not omit * from auto.Rui Ueyama2015-12-161-3/+3
| | | | | | We don't do that in other places in the same file. llvm-svn: 255833
* ELF: Drop 'Sym' suffix from member function names for consistency.Rui Ueyama2015-12-164-23/+23
| | | | | | | Since the functions are members of SymbolTable class, it is obvious that they are adding symbols. llvm-svn: 255832
* Simplify memory management with std::unique_ptr.Rafael Espindola2015-12-163-27/+23
| | | | llvm-svn: 255831
* ELF: Factor out common code. NFC.Rui Ueyama2015-12-161-12/+17
| | | | llvm-svn: 255830
* ELF: Separate error message generation from call of error() or warning().Rui Ueyama2015-12-162-19/+16
| | | | | | | Previously reportConflict returned only when the third argument is false. Now it always returns a value. llvm-svn: 255829
* [CodeGen] Make MachineInstrBuilder::copyImplicitOps const. NFC.Ahmed Bougacha2015-12-162-14/+13
| | | | | | | | This matches the other MIB methods, none of which modify the builder. Without this, we can't chain copyImplicitOps. Also reformat the few users, in PPCEarlyReturn. llvm-svn: 255828
* Fix CFI tests in sanitizer-ld.Evgeniy Stepanov2015-12-161-9/+3
| | | | | | | This test is not testing what it is supposed to test because of a mixup with the CHECK lines. llvm-svn: 255827
* Add more debugging output to MachO lld. NFC.Pete Cooper2015-12-163-5/+49
| | | | | | | In debug builds there's now a dump method on Section and improved printing of atoms. llvm-svn: 255826
* [PGO] Handle and report overflow during profile merge for all types of dataNathan Slingerland2015-12-1612-103/+246
| | | | | | | | | | | | Summary: Surface counter overflow when merging profile data. Merging still occurs on overflow but counts saturate to the maximum representable value. Overflow is reported to the user. Reviewers: davidxl, dnovillo, silvas Subscribers: llvm-commits Differential Revision: http://reviews.llvm.org/D15547 llvm-svn: 255825
* Use LLVM style variable name (NFC)Teresa Johnson2015-12-161-4/+4
| | | | | | Fixes variable name from r255779. llvm-svn: 255824
* Merge two `if`s for MIPS. NFC.Rui Ueyama2015-12-161-10/+10
| | | | llvm-svn: 255823
* Fix DarwinLdDriverTest.cpp to pass real llvm options.Pete Cooper2015-12-161-3/+3
| | | | | | | | | | | After r255819, parse() actually parses what you pass it. This test was failing because it passed '--debug-only' which isn't in release builds, but also 'foo' which isn't an option at all. We now pass -enable-tbaa and -enable-misched which are real options. llvm-svn: 255822
* CXX_FAST_TLS calling convention: performance improvement for AArch64.Manman Ren2015-12-168-45/+145
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The access function has a short entry and a short exit, the initialization block is only run the first time. To improve the performance, we want to have a short frame at the entry and exit. We explicitly handle most of the CSRs via copies. Only the CSRs that are not handled via copies will be in CSR_SaveList. Frame lowering and prologue/epilogue insertion will generate a short frame in the entry and exit according to CSR_SaveList. The majority of the CSRs will be handled by register allcoator. Register allocator will try to spill and reload them in the initialization block. We add CSRsViaCopy, it will be explicitly handled during lowering. 1> we first set FunctionLoweringInfo->SplitCSR if conditions are met (the target supports it for the given machine function and the function has only return exits). We also call TLI->initializeSplitCSR to perform initialization. 2> we call TLI->insertCopiesSplitCSR to insert copies from CSRsViaCopy to virtual registers at beginning of the entry block and copies from virtual registers to CSRsViaCopy at beginning of the exit blocks. 3> we also need to make sure the explicit copies will not be eliminated. The target independent portion was committed as r255353. rdar://problem/23557469 Differential Revision: http://reviews.llvm.org/D15341 llvm-svn: 255821
* [Hexagon] Update e_flags in the ELF definitionsKrzysztof Parzyszek2015-12-161-7/+9
| | | | llvm-svn: 255820
* Move parsing of LLVM options to parse() method.Pete Cooper2015-12-165-2/+18
| | | | | | | | | We used to parse the LLVM options in Driver::link. However, that is after parse() where we load files. By moving the LLVM option handling earlier, we can add DEBUG() to code such as MachONormalizedFileToAtoms.cpp and have it enabled correctly by '-mllvm --debug'. llvm-svn: 255819
* CXX_FAST_TLS calling convention: target independent portion.Manman Ren2015-12-162-4/+4
| | | | | | | | | Update supportSplitCSR's interface to take machine function instead of the calling convention. Review comments for http://reviews.llvm.org/D15341 llvm-svn: 255818
* Remove now-unused includeDerek Schuff2015-12-161-1/+0
| | | | llvm-svn: 255817
* Iterate over phys regs insteadDerek Schuff2015-12-162-4/+10
| | | | llvm-svn: 255816
* [WebAssembly] Print an extra local decl when the user stack pointer is usedDerek Schuff2015-12-162-0/+11
| | | | | | Differential Revision: http://reviews.llvm.org/D15546 llvm-svn: 255815
* [PS4] Fix the unit test to be compatible with clang driver. NFCSumanth Gundapaneni2015-12-162-4/+4
| | | | | | | | | | ".exe" extension is inherently checked by llvm::fs::can_execute() This patch fixes the linker extension in clang driver and updates the unit test to accommodate the the check string on windows. Differential Revision:http://reviews.llvm.org/D15577 llvm-svn: 255814
* [CMake] Name the bootstrap stages stage[0-9]Chris Bieneman2015-12-161-17/+38
| | | | | | | | | | When you start chaining bootstrap stages the CMake-generated targets get unwieldy. This change supports naming the bootstrap targets and creating wrapper targets in the top-level build file. Without this patch the default target generated for a second stage build was "bootstrap" with it the target is "stage2". Also with some CMake goop setting CLANG_BOOTSTRAP_TARGETS, you can expose third stage targets as "stage3" instead of "bootstrap-bootstrap" llvm-svn: 255813
* Let -Wdelete-non-virtual-dtor mention final.Nico Weber2015-12-162-7/+8
| | | | llvm-svn: 255812
* [Hexagon] Misc fixes to r255807Krzysztof Parzyszek2015-12-161-8/+3
| | | | llvm-svn: 255811
* Set debugger tuning from TargetOptions (NFC)Paul Robinson2015-12-164-39/+45
| | | | | | Differential Revision: http://reviews.llvm.org/D15427 llvm-svn: 255810
* Add -fsyntax-only to fix failure in read-only directories.Diego Novillo2015-12-161-1/+1
| | | | | | | | | Internally, this test is executed in a read-only directory, which causes it to fail because the driver tries to generate a file unnecessarily. Adding -fsyntax-only fixes the issue (thanks to Artem Belevich for figuring out the root cause). llvm-svn: 255809
* Rework breakpoint language filtering to use the symbol context's language.Dawn Perchik2015-12-168-58/+109
| | | | | | | | | | | | | | | | This patch reworks the breakpoint filter-by-language patch to use the symbol context instead of trying to guess the language solely from the symbol's name. This has the advantage that symbols compiled with debug info will have their actual language known. Symbols without debug info will still do the same "guess"ing because Symbol::GetLanguage() is implemented using Mangled::GuessLanguage(). The recognition of ObjC names was merged into Mangled::GuessLanguage. Reviewed by: jingham, clayborg Subscribers: lldb-commits Differential Revision: http://reviews.llvm.org/D15326 llvm-svn: 255808
* [Hexagon] Update the Hexagon packetizerKrzysztof Parzyszek2015-12-164-888/+1235
| | | | llvm-svn: 255807
* Revert "[ARM] Add ARMv8.2-A FP16 scalar instructions"Reid Kleckner2015-12-1618-1976/+6
| | | | | | This reverts commit r255762. llvm-svn: 255806
* Added some DEBUG() prints to make it clearer what the mach-o passes are ↵Pete Cooper2015-12-162-2/+27
| | | | | | | | | | | | doing. NFC. We had some DEBUG prints these passes, but add more so that its clear where we are dumping things, and what state we are in when we do so. I'll be adding more and more DEBUG printing to try make it easier to observe whats going on without having to attach a debugger. llvm-svn: 255805
* Fix the failing windows clang unit tests. NFCSumanth Gundapaneni2015-12-163-6/+7
| | | | | | | | | | Some tests are missing the {{(.exe)?}} suffix on the exectables which the FileCheck is grepping for. This will ensure, the lit tests are clean on windows Differential Revision: http://reviews.llvm.org/D15579 llvm-svn: 255804
* [WebAssembly] Fix the CFG Stackifier to handle unoptimized branchesDan Gohman2015-12-162-2/+60
| | | | | | | If a branch both branches to and falls through to the same block, treat it as an explicit branch. llvm-svn: 255803
* [CUDA] renamed cuda_runtime.h wrapper to __cuda_runtime.hArtem Belevich2015-12-164-14/+30
| | | | | | | | | | | | | | Currently it's easy to break CUDA compilation by passing "-isystem /path/to/cuda/include" to compiler which leads to compiler including real cuda_runtime.h from there instead of the wrapper we need. Renaming the wrapper ensures that we can include the wrapper regardless of user-specified include paths and files. Differential Revision: http://reviews.llvm.org/D15534 llvm-svn: 255802
* [CMake] If you're building compiler-rt, the bootstrap build should depend on it.Chris Bieneman2015-12-161-1/+5
| | | | | | Adding optional dependency for the bootstrap targets on compiler-rt. llvm-svn: 255801
* [CMake] Make CLANG_BOOTSTRAP_TARGETS overridableChris Bieneman2015-12-161-3/+4
| | | | | | This allows exposing a custom list of targets from the next stage build up. llvm-svn: 255799
* [CMake] ExternalProject for compiler-rt needs to depend on llvm-config and clangChris Bieneman2015-12-161-2/+1
| | | | | | The add_dependencies call on compiler-rt-configure adds llvm-config and clang to the phony target, but not to the actual configure custom command. We need the dependency bound to the custom command so that it can't be re-ordered by Ninja. llvm-svn: 255798
OpenPOWER on IntegriCloud