summaryrefslogtreecommitdiffstats
path: root/llvm
Commit message (Collapse)AuthorAgeFilesLines
* [FaultMaps] Let the frontend pre-select implicit null check candidates.Sanjoy Das2015-06-304-6/+62
| | | | | | | | | | | | | | | | | | Summary: This change introduces a !make.implicit metadata that allows the frontend to pre-select the set of explicit null checks that will be considered for transformation into implicit null checks. The reason for not using profiling data instead of !make.implicit is explained in the change to `FaultMaps.rst`. Reviewers: atrick, reames, pgavlin, JosephTremoulet Subscribers: llvm-commits Differential Revision: http://reviews.llvm.org/D10824 llvm-svn: 241116
* Pack MCSymbol::HasName in to a spare bit in the section/fragment union.Pete Cooper2015-06-302-19/+23
| | | | | | | | | | | | This is part of an effort to pack the average MCSymbol down to 24 bytes. The HasName bit was pushing the size of the bitfield over to another word, so this change uses a PointerIntPair to fit in it to unused bits of a PointerUnion. Reviewed by Rafael Espíndola llvm-svn: 241115
* Use ErrorOr in getRelocationAdress.Rafael Espindola2015-06-308-32/+20
| | | | | | | We can probably do better in this method, but this is an improvement and enables further ErrorOr cleanups. llvm-svn: 241114
* Implement containsSymbol with other lower level methods.Rafael Espindola2015-06-307-44/+7
| | | | llvm-svn: 241112
* Modified a comment about the reason for the patch (removed commented code).Nemanja Ivanovic2015-06-301-2/+1
| | | | llvm-svn: 241110
* Remove Elf_Shdr_Iter. Diagnose files with invalid section header sizes.Rafael Espindola2015-06-305-29/+22
| | | | llvm-svn: 241109
* Fixes a bug with __builtin_vsx_lxvdw4x on Little Endian systemsNemanja Ivanovic2015-06-302-1/+29
| | | | llvm-svn: 241108
* Use range loops. NFC.Rafael Espindola2015-06-301-30/+24
| | | | llvm-svn: 241105
* Use range loop.Rafael Espindola2015-06-301-8/+6
| | | | llvm-svn: 241104
* COFF: Do not assign linker-weak symbols to selectany comdat sections.Peter Collingbourne2015-06-303-5/+14
| | | | | | | | | | | | | | It is mandatory to specify a comdat in order to receive comdat semantics for a symbol. We were previously getting this wrong in -function-sections mode; linker-weak symbols were being emitted in a selectany comdat. This change causes such symbols to use a noduplicates comdat instead, fixing the inconsistency. Also correct an inaccuracy in the docs. Differential Revision: http://reviews.llvm.org/D10828 llvm-svn: 241103
* [DebugInfo] Let IRBuilder::SetInsertPoint(BB::iterator) update current debug ↵Alexey Samsonov2015-06-302-2/+33
| | | | | | | | | | | | | | | | | | | | | | | | | | | location. IRBuilder::SetInsertPoint(BB, BB::iterator) is an older version of IRBuilder::SetInsertPoint(Instruction). However, the latter updates the current debug location of emitted instruction, while the former doesn't, which is confusing. Unify the behavior of these methods: now they both set current debug location to the debug location of instruction at insertion point. The callers of IRBuilder::SetInsertPoint(BB, BB::iterator) doesn't seem to depend on the old behavior (keeping the original debug info location). On the contrary, sometimes they (e.g. SCEV) *should* be updating debug info location, but don't. I'll look at gdb bots after the commit to check that we don't regress on debug info somewhere. This change may make line table more fine-grained, thus increasing debug info size. I haven't observed significant increase, though: it varies from negligible to 0.3% on several binaries and self-hosted Clang. This is yet another change targeted at resolving PR23837. llvm-svn: 241101
* Use range loop.Rafael Espindola2015-06-301-5/+4
| | | | llvm-svn: 241100
* [NVPTX] Fix issue introduced in D10321Jingyue Wu2015-06-302-3/+20
| | | | | | | | | | | | | | | | | | | | | | Summary: Really check if %SP is not used in other places, instead of checking only exact one non-dbg use. Patched by Xuetian Weng. Test Plan: @foo4 in test/CodeGen/NVPTX/local-stack-frame.ll, create a case that SP will appear twice. Reviewers: jholewinski, jingyue Reviewed By: jingyue Subscribers: llvm-commits, sfantao, jholewinski Differential Revision: http://reviews.llvm.org/D10844 llvm-svn: 241099
* Fix a fixme and make DICompileUnit a distinct node. Tested via clang.Adrian Prantl2015-06-301-3/+1
| | | | llvm-svn: 241097
* Fix compilation failure introduced in r241093.Alex Lorenz2015-06-301-2/+2
| | | | llvm-svn: 241096
* Add a test of an elf file with an invalid section index.Rafael Espindola2015-06-302-0/+4
| | | | | | We were already checking, but were missing a test. llvm-svn: 241094
* MIR Serialization: Serialize MBB successors.Alex Lorenz2015-06-308-4/+189
| | | | | | | | | | | | | This commit implements serialization of the machine basic block successors. It uses a YAML flow sequence that contains strings that have the MBB references. The MBB references in those strings use the same syntax as the MBB machine operands in the machine instruction strings. Reviewers: Duncan P. N. Exon Smith Differential Revision: http://reviews.llvm.org/D10699 llvm-svn: 241093
* MIR Printer: extract the code that prints MBB references into a new method. NFC.Alex Lorenz2015-06-301-5/+10
| | | | | | | This commit enables the MIR printer to reuse the code that prints MBB references. llvm-svn: 241087
* MIR Parser: refactor error reporting for machine instruction parser errors. NFC.Alex Lorenz2015-06-301-5/+14
| | | | | | | This commit extracts the code that reports an error that's produced by the machine instruction parser into a new method that can be reused in other places. llvm-svn: 241086
* MIR Parser: make the machine instruction parsing interface more consistent. NFC.Alex Lorenz2015-06-303-30/+26
| | | | | | | | | This commit refactors the interface for machine instruction parser. It adopts the pattern of returning a bool and passing in the result in the first argument that is used by the other parsing methods for the the method 'parse' and the function 'parseMachineInstr'. llvm-svn: 241085
* Force relocation mode to be default, regardless of what is passed to the ↵Samuel Antao2015-06-302-1/+19
| | | | | | backend. llvm-svn: 241081
* [CMake] Make the CMake files (LLVMConfig.cmake and LLVMExports.cmake)Dan Liew2015-06-301-9/+27
| | | | | | | | | | | | | | | | | | generated by the Autoconf/Makefile build system relocatable. Previously the generated CMake files contained hardcoded paths which prevented a binary installation from being relocated to a different place in the file system. This problem was most noticeable in LLVM's official binary releases which were completely unusable by a downstream project trying to import the CMake targets. Package maintainers who choose to modify the install location of the CMake directory without using the ``PROJ_cmake`` Makefile variable override will need to patch the generated``LLVMConfig.cmake`` so that ``LLVM_INSTALL_PREFIX`` and ``_LLVM_CMAKE_DIR`` variables are set correctly. llvm-svn: 241080
* MIR Parser: adopt the 'maybeLex...' pattern. NFC.Alex Lorenz2015-06-301-22/+37
| | | | | | | | | | | | This commit refactors the machine instruction lexer so that the lexing functions use the 'maybeLex...' pattern, where they determine if they can lex the current token by themselves. Reviewers: Sean Silva Differential Revision: http://reviews.llvm.org/D10817 llvm-svn: 241078
* use range-based for loops; NFCISanjay Patel2015-06-301-7/+5
| | | | llvm-svn: 241076
* Fix the name of the iterator functions to match the coding standards.Rafael Espindola2015-06-306-76/+75
| | | | llvm-svn: 241074
* Report an error on invalid sh_entsize.Rafael Espindola2015-06-303-8/+43
| | | | llvm-svn: 241070
* [X86] Fix a bug in WIN_FTOL_32/64 handling.Michael Kuperstein2015-06-302-1/+23
| | | | | | | | | | Duplicating an FP register "as itself" is a bad idea, since it violates the invariant that every FP register is mapped to at most one FPU stack slot. Use the scratch FP register instead. This fixes PR23957. llvm-svn: 241069
* [mips] [IAS] Add support for the .module softfloat/hardfloat directives.Toma Tabacu2015-06-305-0/+100
| | | | | | | | | These directives are used to set the default value of the SoftFloat feature. They have the same effect as setting -m{soft, hard}-float from the command line. Differential Revision: http://reviews.llvm.org/D9073 llvm-svn: 241066
* [mips] [IAS] Make .module directives change AssemblerOptions->front().Toma Tabacu2015-06-302-8/+48
| | | | | | Differential Revision: http://reviews.llvm.org/D10643 llvm-svn: 241062
* Reverting r241058 because it's causing buildbot failures.Ranjeet Singh2015-06-3011-127/+101
| | | | llvm-svn: 241061
* There are a few places where subtarget features are stillRanjeet Singh2015-06-3011-101/+127
| | | | | | | | | represented by uint64_t, this patch replaces these usages with the FeatureBitset (std::bitset) type. Differential Revision: http://reviews.llvm.org/D10542 llvm-svn: 241058
* Correct a typo for a LoopVectorize testDavid Majnemer2015-06-301-1/+1
| | | | | | I forgot to specify the correct pass. llvm-svn: 241054
* [mips] [IAS] Add support for the .set oddspreg/nooddspreg directives.Toma Tabacu2015-06-305-0/+72
| | | | | | Differential Revision: http://reviews.llvm.org/D10657 llvm-svn: 241052
* [X86] Add FXSR intrinsicsMichael Kuperstein2015-06-304-8/+71
| | | | | | Add intrinsics for the FXSR instructions (FXSAVE/FXSAVE64/FXRSTOR/FXRSTOR64) llvm-svn: 241049
* ELF.h: Prune obsolete comments removed in r240996. [-Wdocumentation]NAKAMURA Takumi2015-06-301-6/+0
| | | | | FIXME: Should they be moved onto Elf_Sym_Impl::getNmae()? llvm-svn: 241044
* Don't return error_code from a function that doesn't fail.Rafael Espindola2015-06-3011-47/+23
| | | | llvm-svn: 241042
* Drop the OS from the WebAssembly target triple for now.Dan Gohman2015-06-303-8/+5
| | | | | | | This unbreaks TripleTest.Normalization. We'll have to come up with a new plan for the OS component of the target triple for WebAssembly. llvm-svn: 241041
* Move function to the only file that uses it.Rafael Espindola2015-06-304-37/+35
| | | | llvm-svn: 241040
* Don't return error_code from a function that doesn't fail.Rafael Espindola2015-06-304-22/+12
| | | | llvm-svn: 241039
* Debug info: Add dwarf backend support for DIModule.Adrian Prantl2015-06-306-0/+60
| | | | | | rdar://problem/20965932 llvm-svn: 241034
* Don't return error_code from a function that doesn't fail.Rafael Espindola2015-06-3013-49/+26
| | | | llvm-svn: 241033
* Fix LastArchType to point to the new last arch.Dan Gohman2015-06-301-1/+1
| | | | llvm-svn: 241030
* Cleanup getRelocationAddend.Rafael Espindola2015-06-304-23/+42
| | | | | | | | | | | Realistically, this will be returning ErrorOr for some time as refactoring the user code to check once per section will take some time. Given that, use it for checking if a relocation has addend or not. While at it, add ELFRelocationRef to simplify the users. llvm-svn: 241028
* RegisterCoalescer: Cleanup empty subranges after shrinkToUses()Matthias Braun2015-06-302-0/+21
| | | | | | | | A call to removeEmptySubranges() is necessary after every operation that potentially removes all segments from a subregister range; this case in the register coalescer was missing. llvm-svn: 241027
* llvm-bcanalyzer: Add a field that was missed in r241016.Adrian Prantl2015-06-301-0/+1
| | | | llvm-svn: 241026
* Object/COFF: Define coff_symbol_generic.Rui Ueyama2015-06-302-6/+27
| | | | | | | | | | | | | | If you only need Name and Value fields in the COFF symbol, you don't need to distinguish 32 bit and 64 bit COFF symbols. These fields start at the same offsets and have the same size. This data strucutre is one pointer smaller than COFFSymbolRef thus slightly efficient. I'll use this class in LLD as we create millions of LLD symbol objects that currently contain COFFSymbolRef. Shaving off 8 byte (or 4 byte on 32 bit) from that class actually matters becasue of the number of objects we create in LLD. llvm-svn: 241024
* Use asserts for checks that should never fail.Rafael Espindola2015-06-291-37/+11
| | | | | | | If a section is not SHT_REL or SHT_RELA, we never create a valid iterator, so the getRelocation* methods should always see a section with the correct type. llvm-svn: 241023
* [WebAssembly] Initial WebAssembly backendDan Gohman2015-06-2956-4/+1913
| | | | | | | This WebAssembly backend is just a skeleton at this time and is not yet functional. llvm-svn: 241022
* Don't return error_code from function that never fails.Rafael Espindola2015-06-2923-106/+49
| | | | llvm-svn: 241021
* lto: Clean up C libLTO interfaces pertaining to linker flags.Peter Collingbourne2015-06-293-58/+7
| | | | | | | | | Specifically, remove the dependent library interface and replace the existing linker option interface with a new one that returns a single list of flags. Differential Revision: http://reviews.llvm.org/D10820 llvm-svn: 241018
OpenPOWER on IntegriCloud