summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
...
* [MachineSink] Improve runtime performance. NFC.Arnaud A. de Grandmaison2015-06-151-35/+59
| | | | | | | | | | | | This patch fixes a compilation time issue, when MachineSink faces PHIs with a huge number of operands. This can happen for example in goto table based interpreters, where some basic blocks can have several of those PHIs, each one with several hundreds operands. MachineSink was spending a significant time re-building and re-sorting the list of successors of the current MachineBasicBlock. The computing and sorting of the current MachineBasicBlock successors is now cached. llvm-svn: 239720
* [LinkerScript] Add matching of output sections to segmentsDenis Protivensky2015-06-1514-5/+317
| | | | | | | | | | | Add method to query segments for specified output section name. Return error if the section is assigned to unknown segment. Check matching of sections to segments during layout on the subject of correctness. NOTE: no actual functionality of using custom segments is implemented. Differential Revision: http://reviews.llvm.org/D10359 llvm-svn: 239719
* [ValueTracking] do not overwrite analysis results already computedJingyue Wu2015-06-153-146/+192
| | | | | | | | | | | | | | | | | | Summary: ValueTracking used to overwrite the analysis results computed from assumes and dominating conditions. This patch fixes this issue. Test Plan: test/Analysis/ValueTracking/assume.ll Reviewers: hfinkel, majnemer Reviewed By: majnemer Subscribers: llvm-commits Differential Revision: http://reviews.llvm.org/D10283 llvm-svn: 239718
* COFF: Use ulittle32_t::operator|=. NFC.Rui Ueyama2015-06-151-4/+4
| | | | llvm-svn: 239717
* [Support][Endian] Define |= and &= for u{big,little}{16,32,64}_t.Rui Ueyama2015-06-151-0/+10
| | | | llvm-svn: 239716
* [AArch64] Delete two empty files, which should be removed by r239713.Hao Liu2015-06-152-0/+0
| | | | llvm-svn: 239715
* COFF: Add a brief description about LTO.Rui Ueyama2015-06-151-0/+14
| | | | llvm-svn: 239714
* [AArch64] Revert r239711 again. We need to discuss how to share code between ↵Hao Liu2015-06-157-616/+0
| | | | | | AArch64 and ARM backend. llvm-svn: 239713
* COFF: Fix resource table size.Rui Ueyama2015-06-152-2/+2
| | | | | | The size field shouldn't include trailing padding. llvm-svn: 239712
* [AArch64] Match interleaved memory accesses into ldN/stN instructions.Hao Liu2015-06-157-0/+616
| | | | | | | Re-commit after adding "-aarch64-neon-syntax=generic" to fix the failure on OS X. This patch was firstly committed in r239514, then reverted in r239544 because of a syntax incompatible failure on OS X. llvm-svn: 239711
* COFF: Support base relocations.Rui Ueyama2015-06-159-9/+355
| | | | | | | | | | | | | | | | | | | PE/COFF executables/DLLs usually contain data which is called base relocations. Base relocations are a list of addresses that need to be fixed by the loader if load-time relocation is needed. Base relocations are in .reloc section. We emit one base relocation entry for each IMAGE_REL_AMD64_ADDR64 relocation. In order to save disk space, base relocations are grouped by page. Each group is called a block. A block starts with a 32-bit page address followed by 16-bit offsets in the page. That is more efficient representation of addresses than just an array of 32-bit addresses. llvm-svn: 239710
* [analyzer] Remove ObjCContainersChecker size information when a ↵Devin Coughlin2015-06-152-1/+46
| | | | | | | | | | | | | CFMutableArrayRef escapes Update ObjCContainersChecker to be notified when pointers escape so it can remove size information for escaping CFMutableArrayRefs. When such pointers escape, un-analyzed code could mutate the array and cause the size information to be incorrect. rdar://problem/19406485 llvm-svn: 239709
* Fix std::function allocator constructors in C++03.Eric Fiselier2015-06-145-137/+232
| | | | | | | | | The C++03 version of function tried to default construct the allocator in the uses allocator constructors when no allocation was performed. These constructors would fail to compile when used with allocators that had no default constructor. llvm-svn: 239708
* COFF: Change const name. NFC.Rui Ueyama2015-06-141-2/+2
| | | | llvm-svn: 239707
* COFF: Set Chunk to OutputSection backreference in addChunk().Rui Ueyama2015-06-141-1/+1
| | | | | | | | When we add a chunk to an OutputSection, we always want to create a backreference from an OutputSection to a Chunk. To make sure we always do, do that in addChunk(). NFC. llvm-svn: 239706
* COFF: Add an assertion. NFC.Rui Ueyama2015-06-141-2/+1
| | | | | | | r239458 changed callee side of this function, so Live can never be true when this function is called. llvm-svn: 239705
* COFF: Support Windows resource files.Rui Ueyama2015-06-147-25/+114
| | | | | | | | | | | Resource files are data files containing i18n messages, icon images, etc. MSVC has a tool to convert a resource file to a regular COFF file so that you can just link that file to embed resources to an executable. However, you can directly pass resource files to the linker. If you do that, the linker invokes the tool automatically. This patch implements that feature. llvm-svn: 239704
* [CMake] Try to fix r239612, not to miss ↵NAKAMURA Takumi2015-06-141-3/+5
| | | | | | | | | | resources/windows_version_resource.rc in clang build. - Who defines ${LLVM_SOURCE_DIR} ? - Would windows_version_resource.rc be available in an *installed* llvm tree? I suggest it may be installed in ${PREFIX}/share. llvm-svn: 239703
* [InstSimplify] fsub nnan x, x -> 0.0 is valid without ninfBenjamin Kramer2015-06-142-5/+5
| | | | | | | Both inf - inf and (-inf) - (-inf) are NaN, so it's already covered by nnan. llvm-svn: 239702
* [InstSimplify] Add self-fdiv identities for -ffinite-math-only.Benjamin Kramer2015-06-142-0/+92
| | | | | | | | | When NaNs and Infs are ignored we can fold X / X -> 1.0 -X / X -> -1.0 X / -X -> -1.0 llvm-svn: 239701
* AVX-512: Implemented DAG lowering for shuff62x2/shufi62x2 instuctions ( ↵Igor Breger2015-06-143-4/+88
| | | | | | | | | | Shuffle Packed Values at 128-bit Granularity ) Tests added , vector-shuffle-512-v8.ll test re-generated. Differential Revision: http://reviews.llvm.org/D10300 llvm-svn: 239697
* Add test for parsing the XOR operator in Intel syntax inline assembly.Michael Kuperstein2015-06-141-0/+2
| | | | | | | | | LLVM side of the patch was committed as r239695. Differential Revision: http://reviews.llvm.org/D10384 Patch by marina.yatsina@intel.com llvm-svn: 239696
* Add support for parsing the XOR operator in Intel syntax inline assembly.Michael Kuperstein2015-06-142-12/+41
| | | | | | | Differential Revision: http://reviews.llvm.org/D10385 Patch by marina.yatsina@intel.com llvm-svn: 239695
* AVX-512: Implemented cvtsi2ss/d cvtusi2ss/d instructions with round control ↵Igor Breger2015-06-148-15/+594
| | | | | | | | | | | for KNL. Added intrinsics for cvtsi2ss/d instructions. Added tests for intrinsics and encoding. Differential Revision: http://reviews.llvm.org/D10430 llvm-svn: 239694
* clang-format: [JS] Fix corner case in template string parsing.Daniel Jasper2015-06-142-1/+7
| | | | | | | | | | Before, these would not properly detected because of the char/string literal found when re-lexing after the first `: var x = `'`; // comment with matching quote ' var x = `"`; // comment with matching quote " llvm-svn: 239693
* AsmPrinter.cpp: Avoid crashes for targeting like "arm-mingw32". CurrentFnSym ↵NAKAMURA Takumi2015-06-141-1/+2
| | | | | | might not be <MCSymbolELF> here. llvm-svn: 239692
* Reformat.NAKAMURA Takumi2015-06-141-5/+3
| | | | llvm-svn: 239691
* [Hexagon] Adding some codegen tests and updating some to match spec.Colin LeMahieu2015-06-1312-21/+350
| | | | llvm-svn: 239690
* Add some basic support for CloudABI on i686.Ed Schouten2015-06-131-0/+2
| | | | | | | | | | | Some people want to experiment with building i686 CloudABI binaries. I am not entirely sure this is a good idea, as I'd rather see Intel x32 support appear. As it only requires a two-line change, let's at least provide compiler to ease experimenting. llvm-svn: 239689
* [Statepoints] Skip a vector copy when uniquing values.Benjamin Kramer2015-06-131-11/+4
| | | | | | No functionality change intended. llvm-svn: 239688
* [ExecutionEngine] ArrayRefize argument passing.Benjamin Kramer2015-06-1310-51/+34
| | | | | | No functionality change intended. llvm-svn: 239687
* C++11 Rangify loops in AssemblyWriter::printModule, NFC.Yaron Keren2015-06-131-11/+8
| | | | llvm-svn: 239686
* Don't use std::errc.Rafael Espindola2015-06-131-6/+7
| | | | | | | | | | | | | | | | | | | | | As noted on Errc.h: // * std::errc is just marked with is_error_condition_enum. This means that // common patters like AnErrorCode == errc::no_such_file_or_directory take // 4 virtual calls instead of two comparisons. And on some libstdc++ those virtual functions conclude that ------------------------ int main() { std::error_code foo = std::make_error_code(std::errc::no_such_file_or_directory); return foo == std::errc::no_such_file_or_directory; } ------------------------- should exit with 0. llvm-svn: 239685
* Don't use std::errc.Rafael Espindola2015-06-131-1/+2
| | | | | | | | | | | | | | | | | | | | | As noted on Errc.h: // * std::errc is just marked with is_error_condition_enum. This means that // common patters like AnErrorCode == errc::no_such_file_or_directory take // 4 virtual calls instead of two comparisons. And on some libstdc++ those virtual functions conclude that ------------------------ int main() { std::error_code foo = std::make_error_code(std::errc::no_such_file_or_directory); return foo == std::errc::no_such_file_or_directory; } ------------------------- should exit with 0. llvm-svn: 239684
* Don't use std::errc.Rafael Espindola2015-06-135-8/+12
| | | | | | | | | | | | | | | | | | | | | As noted on Errc.h: // * std::errc is just marked with is_error_condition_enum. This means that // common patters like AnErrorCode == errc::no_such_file_or_directory take // 4 virtual calls instead of two comparisons. And on some libstdc++ those virtual functions conclude that ------------------------ int main() { std::error_code foo = std::make_error_code(std::errc::no_such_file_or_directory); return foo == std::errc::no_such_file_or_directory; } ------------------------- should exit with 0. llvm-svn: 239683
* [DAGCombiner] Added BSWAP(BSWAP(x)) -> x combine pattern.Simon Pilgrim2015-06-132-0/+77
| | | | llvm-svn: 239682
* hoist loop-invariant; NFCISanjay Patel2015-06-131-3/+2
| | | | llvm-svn: 239681
* remove function names from comments and clean up; NFCSanjay Patel2015-06-131-58/+40
| | | | llvm-svn: 239680
* [SelectionDAG] Added assertions + UNDEF handling for BSWAP node creation.Simon Pilgrim2015-06-131-0/+8
| | | | llvm-svn: 239679
* remove unnecessary casts; NFCISanjay Patel2015-06-131-3/+2
| | | | llvm-svn: 239678
* [Mips] Support R_MIPS_PC16 relocation handlingSimon Atanasyan2015-06-134-2/+156
| | | | llvm-svn: 239677
* [Mips] Use standard relocations R_MIPS_HI16/LO16 instead of custom variantsSimon Atanasyan2015-06-134-22/+8
| | | | | | No functional changes. llvm-svn: 239676
* [DAGCombiner] Added BSWAP vector constant folding support.Simon Pilgrim2015-06-133-3/+113
| | | | llvm-svn: 239675
* Stripped trailing whitespace. NFC.Simon Pilgrim2015-06-131-5/+5
| | | | llvm-svn: 239674
* [LinkerTest] Don't leak error string.Benjamin Kramer2015-06-131-0/+1
| | | | llvm-svn: 239673
* Stripped trailing whitespace. NFC.Simon Pilgrim2015-06-131-6/+6
| | | | llvm-svn: 239672
* Update for llvm api change.Rafael Espindola2015-06-1310-102/+26
| | | | llvm-svn: 239671
* Update for llvm api change.Rafael Espindola2015-06-131-14/+4
| | | | llvm-svn: 239670
* Bring in a BumpPtrStringSaver from lld and simplify the interface.Rafael Espindola2015-06-137-69/+82
| | | | | | | | | | | | StringSaver now always saves to a BumpPtrAllocator. The only reason for having the virtual saveImpl is so lld can have a thread safe version. The reason for the distinct BumpPtrStringSaver class is to avoid the virtual destructor. llvm-svn: 239669
* Cleanup result_of tests and fix issues with the C++03 result_of.Eric Fiselier2015-06-134-68/+314
| | | | | | | | | | The two main fixes this patch contains are: - use __identity_t instead of common_type. common_type was used as an identity metafunction but the decay resulted in incorrect results. - Pointers to free functions were not counted as functions. Remove the pointer before checking if a type is a function. llvm-svn: 239668
OpenPOWER on IntegriCloud