summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Add LLVM_ENABLE_MODULES flag to CMake to enable building with C++ modules.Richard Smith2014-09-263-0/+32
| | | | llvm-svn: 218551
* llvm-vtabledump: Further simplificationDavid Majnemer2014-09-261-43/+15
| | | | | | | Hoist out calls to getSection and getContents. No functional change intended. llvm-svn: 218550
* Object: BSS/virtual sections don't have contentsDavid Majnemer2014-09-266-6/+24
| | | | | | | | | | | | Users of getSectionContents shouldn't try to pass in BSS or virtual sections. In all instances, this is a bug in the code calling this routine. N.B. Some COFF implementations (like CL) will mark their BSS sections as taking space on disk. This would confuse COFFObjectFile into thinking the section is larger than the file. llvm-svn: 218549
* Fix crash bug on Windows.Rui Ueyama2014-09-261-2/+4
| | | | | | | Mutating the DenseMap here seems to cause the Windows executable to crash. Don't use operator[] to access possibly nonexistent key. llvm-svn: 218548
* clang-format of ChangeStdinToBinary & ChangeStdoutToBinary.Yaron Keren2014-09-261-4/+4
| | | | llvm-svn: 218547
* Update llvm-objdump’s Mach-O symbolizer code to print the name of symbol ↵Kevin Enderby2014-09-262-1/+97
| | | | | | | | | | | | | | | | stubs. So in fully linked images when a call is made through a stub it now gets a comment like the following in the disassembly: callq 0x100000f6c ## symbol stub for: _printf indicating the call is to a symbol stub and which symbol it is for. This is done for branch reference types and seeing if the branch target is in a stub section and if so using the indirect symbol table entry for that stub and using that symbol table entries symbol name. llvm-svn: 218546
* Effectively revert r217284 on Darwin due to issues with -gmlt thereAlexey Samsonov2014-09-261-3/+6
| | | | llvm-svn: 218545
* Remove definition of LLVM_VERSION_INFO; this macro is not used by any of theRichard Smith2014-09-262-6/+0
| | | | | | | | | files in this directory. If it should be defined anywhere, it should be defined when building lib/LTO/LTOCodeGenerator.cpp, but we've not had it defined there for quite some time, so that doesn't really seem to be very important. (It also would slow down the modules build by creating extra module variants.) llvm-svn: 218544
* Fix CMake warning CMP0054: don't quote a variable name that is intended to beRichard Smith2014-09-261-1/+1
| | | | | | expanded; future versions of cmake may not expand the variable in this case. llvm-svn: 218543
* Fix misinterpretation of CMake rule found by a CMake warning (related to ↵Richard Smith2014-09-261-2/+2
| | | | | | | | | | | | | | | | | | CMP0054). lldb sets the variable SHARED_LIBRARY to 1, which breaks this conditional, because older versions of CMake interpret if ("${t}" STREQUAL "SHARED_LIBRARY") as meaning if ("${t}" STREQUAL "1") in this case. Change the conditional so it does the right thing with both old and new CMakes. llvm-svn: 218542
* Don't link in sanitizer runtimes if -nostdlib/-nodefaultlibs is provided.Alexey Samsonov2014-09-262-0/+11
| | | | | | | | | | | It makes no sense to link in sanitizer runtimes in this case: the user probably doesn't want to see any system/toolchain libs in his link if he provides these flags, and the link will most likely fail anyway - as sanitizer runtimes depend on libpthread, libdl, libc etc. Also, see discussion in https://code.google.com/p/address-sanitizer/issues/detail?id=344 llvm-svn: 218541
* [x86] Fix a moderately terrifying bug in the new 128-bit shuffle logicChandler Carruth2014-09-263-47/+100
| | | | | | | | | | | that managed to elude all of my fuzz testing historically. =/ Something changed to allow this code path to actually be exercised and it was doing bad things. It is especially heavily exercised by the patterns that emerge when doing AVX shuffles that end up lowered through the 128-bit code path. llvm-svn: 218540
* [IndVar] Don't widen loop compare unless IV user is sign extended.Chad Rosier2014-09-262-2/+32
| | | | | | PR21030 llvm-svn: 218539
* [compiler-rt] recommit of r218481: ASan debugging API for report info ↵Kuba Brecka2014-09-268-24/+362
| | | | | | | | | | extraction and locating addresses Reviewed at http://reviews.llvm.org/D4527 Fixed a test case failure on 32-bit Linux, I did right shift on intptr_t, instead it should have been uintptr_t. llvm-svn: 218538
* gtest: tweaked test runner to fix an extra comma, added more tdd-based ↵Todd Fiala2014-09-264-23/+376
| | | | | | | | | thread coordinator behavior. Starting to flesh out the thread state coordinator class that will be used by Linux/llgs. llvm-svn: 218537
* R600/SI: Use break instead of continueMatt Arsenault2014-09-261-1/+1
| | | | | | If an instruction doesn't have src1, it doesn't have src2 llvm-svn: 218536
* R600/SI: Add strict check lines to div_scale tests.Matt Arsenault2014-09-261-16/+255
| | | | | | | | | This has weird operand requirements so it's worthwhile to have very strict checks for its operands. Add different combinations of SGPR operands. llvm-svn: 218535
* R600/SI: Add a note about the order of the operands to div_scaleMatt Arsenault2014-09-261-0/+6
| | | | llvm-svn: 218534
* R600/SI: Move finding SGPR operand to move to separate functionMatt Arsenault2014-09-262-63/+71
| | | | llvm-svn: 218533
* R600/SI Allow same SGPR to be used for multiple operandsMatt Arsenault2014-09-262-5/+128
| | | | | | | | | | | Instead of moving the first SGPR that is different than the first, legalize the operand that requires the fewest moves if one SGPR is used for multiple operands. This saves extra moves and is also required for some instructions which require that the same operand be used for multiple operands. llvm-svn: 218532
* R600/SI: Partially move operand legalization to post-isel hook.Matt Arsenault2014-09-269-81/+52
| | | | | | | | | Disable the SGPR usage restriction parts of the DAG legalizeOperands. It now should only be doing immediate folding until it can be replaced later. The real legalization work is now done by the other SIInstrInfo::legalizeOperands llvm-svn: 218531
* R600/SI: Implement findCommutedOpIndicesMatt Arsenault2014-09-262-1/+36
| | | | | | | | | | | The base implementation of commuteInstruction is used in some cases, but it turns out this has been broken for a long time since modifiers were inserted between the real operands. The base implementation of commuteInstruction also fails on immediates, which also needs to be fixed. llvm-svn: 218530
* R600/SI: Don't move operands that are required to be SGPRsMatt Arsenault2014-09-262-10/+53
| | | | | | | | e.g. v_cndmask_b32 requires the condition operand be an SGPR. If one of the source operands were an SGPR, that would be considered the one SGPR use and the condition operand would be illegally moved. llvm-svn: 218529
* R600/SI: Don't assert on exotic operand typesMatt Arsenault2014-09-261-1/+1
| | | | | | | | | This needs a test, but I'm not sure if it is currently possible and I originally hit it due to a bug. Right now the only global address operands have no reason to be VALU instructions, although it theoretically could be a problem. llvm-svn: 218528
* R600/SI: Fix using wrong operand indices when commutingMatt Arsenault2014-09-262-13/+22
| | | | | | | | | | | | | No test since the current SIISelLowering::legalizeOperands effectively hides this, and the general uses seem to only fire on SALU instructions which don't have modifiers between the operands. When trying to use legalizeOperands immediately after instruction selection, it now sees a lot more patterns it did not see before which break on this. llvm-svn: 218527
* R600/SI: Remove apparently dead code in legalizeOperandsMatt Arsenault2014-09-261-8/+0
| | | | | | | | No tests hit this, and I don't see any way a GlobalAddress node would survive beyond lowering on SI. It it would, the move should probably be inserted by selection. llvm-svn: 218526
* Ignore annotation function calls in cost computationDavid Peixotto2014-09-262-0/+134
| | | | | | | | | | | The annotation instructions are dropped during codegen and have no impact on size. In some cases, the annotations were preventing the unroller from unrolling a loop because the annotation calls were pushing the cost over the unrolling threshold. Differential Revision: http://reviews.llvm.org/D5335 llvm-svn: 218525
* [x86] The mnemonic is SHUFPS not SHUPFS. =[ I'm very bad at spellingChandler Carruth2014-09-261-3/+3
| | | | | | sadly. llvm-svn: 218524
* [x86] In the new vector shuffle lowering, when trying to do anotherChandler Carruth2014-09-262-10/+35
| | | | | | | | layer of tie-breaking sorting, it really helps to check that you're in a tie first. =] Otherwise the whole thing cycles infinitely. Test case added, another one found through fuzz testing. llvm-svn: 218523
* [x86] Fix a large collection of bugs that crept in as I fleshed out theChandler Carruth2014-09-263-13/+113
| | | | | | | | | | | | AVX support. New test cases included. Note that none of the existing test cases covered these buggy code paths. =/ Also, it is clear from this that SHUFPS and SHUFPD are the most bug prone shuffle instructions in x86. =[ These were all detected by fuzz-testing. (I <3 fuzz testing.) llvm-svn: 218522
* Elide repeated register operand in Thumb1 instructionsRenato Golin2014-09-262-1/+95
| | | | | | | | | | | | | | | | | | | This patch makes the ARM backend transform 3 operand instructions such as 'adds/subs' to the 2 operand version of the same instruction if the first two register operands are the same. Example: 'adds r0, r0, #1' will is transformed to 'adds r0, #1'. Currently for some instructions such as 'adds' if you try to assemble 'adds r0, r0, #8' for thumb v6m the assembler would throw an error message because the immediate cannot be encoded using 3 bits. The backend should be smart enough to transform the instruction to 'adds r0, #8', which allows for larger immediate constants. Patch by Ranjeet Singh. llvm-svn: 218521
* Fix an assertion failure trying to emit a trivial destructor in ObjC++Ben Langmuir2014-09-262-20/+64
| | | | | | | | | | | | | | | | | | If a base class declares a destructor, we will add the implicit destructor for the subclass in ActOnFields -> AddImplicitlyDeclaredMembersToClass But in Objective C++, we did not compute whether we have a trivial destructor until after that in CXXRecordDecl::completeDefinition() This was leading to a mismatch between the class, which thought it had no trivial destructor, and the CXXDestructorDecl, which considered itself trivial. It turns out the reason we delayed setting this until completeDefinition() was for a warning that has since been removed as part of -Warc-abi, so we just do it eagerly now. llvm-svn: 218520
* [UBSan] Adding support of MIPS32Petar Jovanovic2014-09-263-2/+11
| | | | | | | | | | | | | | Changed files: config-ix.cmake: Enabled UBSan for MIPS32 sanitizer_stacktrace.cc: Program counter for MIPS32 is four byte aligned and a delay slot so subtracted PC by 8 for getting call site address. cast-overflow.cpp: Added big endian support for this test case. Patch by Sagar Thakur. Differential Revision: http://reviews.llvm.org/D4881 llvm-svn: 218519
* gtest: modified Xcode integration so gtest assert/expect failure now shows ↵Todd Fiala2014-09-261-10/+46
| | | | | | | | | | | | | error content in the error marker at the line of failure. This change modifies the python test runner to combine lines starting with a failure report including up to 3 more lines, terminated by the next "[ FAILED ]" line. These are all emitted on the same line as the file:line indication, which allows Xcode's failure marker code to pick it up and display it along with the error badge in the Xcode editor window. Makes for a nice gtest development experience. llvm-svn: 218518
* [X86][SchedModel] SSE reciprocal square root instruction latencies.Andrea Di Biagio2014-09-267-15/+39
| | | | | | | | | | | | | | | | | The SSE rsqrt instruction (a fast reciprocal square root estimate) was grouped in the same scheduling IIC_SSE_SQRT* class as the accurate (but very slow) SSE sqrt instruction. For code which uses rsqrt (possibly with newton-raphson iterations) this poor scheduling was affecting performances. This patch splits off the rsqrt instruction from the sqrt instruction scheduling classes and creates new IIC_SSE_RSQER* classes with latency values based on Agner's table. Differential Revision: http://reviews.llvm.org/D5370 Patch by Simon Pilgrim. llvm-svn: 218517
* Corrected a comment in check_clang_tidy_fix.shAlexander Kornienko2014-09-261-1/+1
| | | | llvm-svn: 218516
* [clang-tidy] Test username substitution in TODO() check.Alexander Kornienko2014-09-264-14/+14
| | | | | | | | | | | | | | | | | | | Summary: This patch depends on D5501. Check user name substitution more specifically by specifying it via the new -config= option. This also lets clang-tidy tests specify clang-tidy options before the '--' when using check_clang_tidy_fix.sh. Reviewers: klimek Reviewed By: klimek Subscribers: curdeius, cfe-commits Differential Revision: http://reviews.llvm.org/D5502 llvm-svn: 218515
* Revert "Store TypeUnits in a SmallVector<DWARFUnitSection> instead of a ↵Frederic Riss2014-09-262-23/+16
| | | | | | | | | | | single DWARFUnitSection." This reverts commit r218513. Buildbots using libstdc++ issue an error when trying to copy SmallVector<std::unique_ptr<>>. Revert the commit until we have a fix. llvm-svn: 218514
* Store TypeUnits in a SmallVector<DWARFUnitSection> instead of a single ↵Frederic Riss2014-09-262-16/+23
| | | | | | | | | | | | | | | | | | | | | DWARFUnitSection. Summary: There will be multiple TypeUnits in an unlinked object that will be extracted from different sections. Now that we have DWARFUnitSection that is supposed to represent an input section, we need a DWARFUnitSection<TypeUnit> per input .debug_types section. Once this is done, the interface is homogenous and we can move the Section parsing code into DWARFUnitSection. Reviewers: samsonov, dblaikie Subscribers: llvm-commits Differential Revision: http://reviews.llvm.org/D5482 llvm-svn: 218513
* Fix a typoAlexander Kornienko2014-09-261-1/+1
| | | | llvm-svn: 218512
* [clang-tidy] Add a -config={YAML} option.Alexander Kornienko2014-09-261-6/+35
| | | | | | | | | | | | | | | | Summary: Add -config option to allow specifying configuration in YAML/JSON format on the command line. Reviewers: klimek Reviewed By: klimek Subscribers: curdeius, cfe-commits Differential Revision: http://reviews.llvm.org/D5501 llvm-svn: 218511
* Fix unused variable warning added in r218509Daniel Sanders2014-09-261-1/+0
| | | | llvm-svn: 218510
* [mips] Generalize the handling of f128 return values to support f128 arguments.Daniel Sanders2014-09-263-50/+112
| | | | | | | | | | | | | | | | | | Summary: This will allow us to handle f128 arguments without duplicating code from CCState::AnalyzeFormalArguments() or CCState::AnalyzeCallOperands(). No functional change. Reviewers: vmedic Reviewed By: vmedic Subscribers: llvm-commits Differential Revision: http://reviews.llvm.org/D5292 llvm-svn: 218509
* [AVX512] Added load/store from BW/VL subsets to Register2Memory opcode tables.Robert Khasanov2014-09-265-6/+946
| | | | | | Added lowering tests for these instructions. llvm-svn: 218508
* clang/test/CodeGen/builtin-assume-aligned.c: Fix for -Asserts.NAKAMURA Takumi2014-09-261-9/+9
| | | | llvm-svn: 218507
* MS ABI: Assert that vftables should have a non-RTTI entryDavid Majnemer2014-09-261-1/+2
| | | | | | No functional change intended. llvm-svn: 218506
* llvm-vtabledump: Small cleanupDavid Majnemer2014-09-261-24/+24
| | | | llvm-svn: 218505
* fix a typo in doumentation index.Jyoti Allur2014-09-261-1/+1
| | | | llvm-svn: 218504
* Small fix for bug 18635.Alexander Musman2014-09-262-7/+30
| | | | | | | | (clang crashed in CodeGen in llvm::Module::getNamedValue on thread_local std::unique_ptr<int>). Differential Revision: http://reviews.llvm.org/D5353 llvm-svn: 218503
* llvm-vtabledump: strip trailing NUL bytesDavid Majnemer2014-09-262-3/+5
| | | | llvm-svn: 218502
OpenPOWER on IntegriCloud