summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* [clang-tidy] Add a checker that warns on TODO comments without username.Benjamin Kramer2014-09-186-1/+128
| | | | | | | | | It also suggests a fix-it, taking the name from $USER. This will be made configurable eventually. Differential Revision: http://reviews.llvm.org/D5393 llvm-svn: 218049
* Alternative (to r216344) fix of gcc -Wpedantic.Patrik Hagglund2014-09-181-1/+1
| | | | | | | | | | | | | | As suggested by David Blaikie, this may be easier to read. The original warning was: ../tools/llvm-cov/llvm-cov.cpp:53:49: error: ISO C++ forbids zero-size array 'argv' [-Werror=pedantic] std::string Invocation(std::string(argv[0]) + " " + argv[1]); It seems to be the case that GCC's warning gets confused and thinks 'argv' is a declaration here. GCC bugzilla issue #61259. llvm-svn: 218048
* [RTC] Runtime Alias Checks for the ISL backend (missing tests)Johannes Doerfert2014-09-1817-0/+776
| | | | | | Test files missing in r218046. llvm-svn: 218047
* [RTC] Runtime Alias Checks for the ISL backendJohannes Doerfert2014-09-1817-32/+283
| | | | | | | | | | | | | | | | | This change will build all alias groups (minimal/maximal accesses to possible aliasing base pointers) we have to check before we can assume an alias free environment. It will also use these to create Runtime Alias Checks (RTC) in the ISL code generation backend, thus allow us to optimize SCoPs despite possibly aliasing pointers when this backend is used. This feature will be enabled for the isl code generator, e.g., --polly-code-generator=isl, but disabled for: - The cloog code generator (still the default). - The case delinearization is enabled. - The case non-affine accesses are allowed. llvm-svn: 218046
* Allow the IslExprBuilder to build address of expressionsJohannes Doerfert2014-09-183-2/+30
| | | | llvm-svn: 218045
* Allow the IslExprBuilder to compare pointersJohannes Doerfert2014-09-181-24/+27
| | | | llvm-svn: 218044
* Updated to isl 2c19ecd444095d6f560349018f68993bc0e03691Johannes Doerfert2014-09-188-9/+14
| | | | | | Changed test cases and fixed warnings. llvm-svn: 218043
* Enable Asan lit tests on FreeBSD.Viktor Kutuzov2014-09-181-2/+3
| | | | | | Differential Revision: http://reviews.llvm.org/D5375 llvm-svn: 218042
* Always emit DW_AT_declaration attribute when the variable isn't a definition.Frederic Riss2014-09-181-3/+3
| | | | | | | | | | | | | | | Summary: This doesn't show up today as we don't emit decalration only variables. This will be tested when the followup patches implementing import of forward declared entities lands in clang. Reviewers: echristo, dblaikie, aprantl Subscribers: llvm-commits Differential Revision: http://reviews.llvm.org/D5382 llvm-svn: 218041
* Fix DWARFUnitSection::getUnitForOffset().Frederic Riss2014-09-181-10/+2
| | | | | | | | | | | | | | | | | | | | | The current code is only able to return the right unit if the passed offset is the exact offset of a section. Generalize the search function by comparing againt the offset of the next unit instead and by switching the search algorithm to upper_bound. This way, the unit returned is the first unit with a getNextUnitOffset() strictly greater than the searched offset, which is exactly what we want. Note that there is no need for testing the range of the resulting unit as the offsets of a DWARFUnitSection are in a single contiguous range from 0 inclusive to lastUnit->getNextUnitOffset() exclusive. Reviewers: dblaikie samsonov Subscribers: llvm-commits Differential Revision: http://reviews.llvm.org/D5262 llvm-svn: 218040
* Remove more redundant semi-colonsJeroen Ketema2014-09-181-5/+5
| | | | llvm-svn: 218039
* [x86] Use PALIGNR for v4i32 and v2i64 blends when appropriate.Chandler Carruth2014-09-185-23/+288
| | | | | | | | | | | | | | | There is no purpose in using it for single-input shuffles as pshufd is just as fast and doesn't tie the two operands. This removes a substantial amount of wrong-domain blend operations in SSSE3 mode. It also completes the usage of PALIGNR for integer shuffles and addresses one of the test cases Quentin hit with the new vector shuffle lowering. There is still the question of whether and when to use this for floating point shuffles. It is faster than shufps or shufpd but in the integer domain. I don't yet really have a good heuristic here for when to use this instruction for floating point vectors. llvm-svn: 218038
* [x86] Add an SSSE3 run and check mode to the 128-bit v2 tests of the newChandler Carruth2014-09-181-0/+47
| | | | | | | vector shuffle lowering. This will be needed for up-coming palignr tests. llvm-svn: 218037
* [mips] Remove custom versions of CCState::AnalyzeReturn() and ↵Daniel Sanders2014-09-183-54/+29
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | CCState::AnalyzeCallReturn(). Summary: The N32/N64 ABI's return f128 values in $f0 and $f2 for hard-float and $v0 and $a0 for soft-float. The registers used in the soft-float case differ from the usual $v0, and $v1 specified for return values. Both cases were previously handled by duplicating the CCState::AnalyzeReturn() and CCState::AnalyzeCallReturn() functions and modifying them to delegate to a different assignment function for f128 and further replace the register type for the hard-float case. There is a simpler way to do both of these. We now use the common functions and select an initial assignment function based on whether the original type is f128 or not. We then handle the hard-float case using CCBitConvertToType<>. No functional change. Reviewers: vmedic Reviewed By: vmedic Subscribers: llvm-commits Differential Revision: http://reviews.llvm.org/D5269 llvm-svn: 218036
* Revert "[FastISel][AArch64] Fold bit test and branch into TBZ and TBNZ."Juergen Ributzka2014-09-182-82/+8
| | | | | | Reverting it until I have time to investigate a regression. llvm-svn: 218035
* Fix previous commit: [FastISel][AArch64] Simplify XALU multiplies.Juergen Ributzka2014-09-182-8/+76
| | | | | | | | When folding the intrinsic flag into the branch or select we also have to consider the fact if the intrinsic got simplified, because it changes the flag we have to check for. llvm-svn: 218034
* [FastISel][AArch64] Simplify XALU multiplies.Juergen Ributzka2014-09-182-1/+46
| | | | | | Simplify {s|u}mul.with.overflow to {s|u}add.with.overflow when possible. llvm-svn: 218033
* [FastISel][AArch64] Followup commit for 218031 to handle negative offsets too.Juergen Ributzka2014-09-182-15/+13
| | | | llvm-svn: 218032
* [FastISel][AArch64] Try to fold the offset into the add instruction when ↵Juergen Ributzka2014-09-182-29/+23
| | | | | | | | | | | | simplifying a memory address. Small optimization in 'simplifyAddress'. When the offset cannot be encoded in the load/store instruction, then we need to materialize the address manually. The add instruction can encode a wider range of immediates than the load/store instructions. This change tries to fold the offset into the add instruction first before materializing the offset in a register. llvm-svn: 218031
* [FastISel][AArch64] Fold 'AND' instruction during the address computation.Juergen Ributzka2014-09-182-2/+99
| | | | | | | | | | | The 'AND' instruction could be used to mask out the lower 32 bits of a register. If this is done inside an address computation we might be able to fold the instruction into the memory instruction itself. and x1, x1, #0xffffffff ---> ldrb x0, [x0, w1, uxtw] ldrb x0, [x0, x1] llvm-svn: 218030
* Parsing/Sema of directive omp for simdAlexander Musman2014-09-1836-23/+3923
| | | | llvm-svn: 218029
* [x86] Add an SSSE3 run to the v4 shuffle test.Chandler Carruth2014-09-181-0/+69
| | | | llvm-svn: 218028
* ARM: prevent crash on ELF directives on COFFSaleem Abdulrasool2014-09-182-1/+72
| | | | | | | | | | Certain directives are unsupported on Windows (some of which could/should be supported). We would not diagnose the use but rather crash during the emission as we try to access the Target Streamer. Add an assertion to prevent creating a NULL reference (which is not permitted under C++) as well as a test to ensure that we can diagnose the disabled directives. llvm-svn: 218014
* [x86] Initial step of teaching the new vector shuffle lowering aboutChandler Carruth2014-09-183-0/+301
| | | | | | | | | | | | | | | | | PALIGNR. This just adds it to the v8i16 and v16i8 lowering steps where it is completely unmatched. It also introduces the logic for detecting rotation shuffle masks even in the presence of single input or blend masks and arbitrarily undef lanes. I've added fairly comprehensive tests for the matching logic in v8i16 because the tests at that size are much easier to write and manage. I've not checked the SSE2 code generated for these tests because the code is *horrible*. It is absolute madness. Testing it will just make the test brittle without giving any interesting improvements in the correctness confidence. llvm-svn: 218013
* ARM: use a more precise check for MachOSaleem Abdulrasool2014-09-182-4/+27
| | | | | | | | | | Rather than relying on support for a specific directive to determine if we are targeting MachO, explicitly check the output format. As an additional bonus, cleanup the caret diagnostic for the non-MachO case and avoid the spurious error caused by not discarding the statement. llvm-svn: 218012
* Work around MSVC parser bug by putting redundant braces around the body ofRichard Smith2014-09-182-2/+4
| | | | | | this range-based for loop. llvm-svn: 218011
* [FastISel][AArch64] Fold bit test and branch into TBZ and TBNZ.Juergen Ributzka2014-09-182-8/+82
| | | | | | | Teach selectBranch to fold bit test and branch into a single instruction (TBZ or TBNZ). llvm-svn: 218010
* Basic: use hex string for __ARM_FP macroSaleem Abdulrasool2014-09-182-3/+4
| | | | | | | The ARM ACLE describes the values as hex constants rather than numeric constants; follow suit. Address post-commit review comments from Jon Roelofs. llvm-svn: 218009
* Change -Wbind-to-temporary-copy from an ExtWarn to an Extension.Nico Weber2014-09-189-37/+39
| | | | | | | | | | | | | | | | | The reasoning is that this construct is accepted by all compilers and valid in C++11, so it doesn't seem like a useful warning to have enabled by default. Building with -pedantic, -Wbind-to-temporary-copy, or -Wc++98-compat still shows the warning. The motivation is that I built re2, and this was the only warning that was emitted during the build. Both changing re2 to fix the warning and detecting clang and suppressing the warning in re2's build seem inferior than just giving the compiler a good default for this warning. Also move the cxx98compat version of this warning to CXX98CompatPedantic, and update tests accordingly. llvm-svn: 218008
* [PECOFF] Support TLS callbacks.Rui Ueyama2014-09-183-14/+71
| | | | | | | | | | | | | | | | | | | | | | The contents from section .CRT$XLA to .CRT$XLZ is an array of function pointers. They are called by the runtime when a new thread is created or (gracefully) terminated. You can make your own initialization function to be called by that mechanism. All you have to do is: - Define a pointer to a function in a .CRT$XL* section using pragma - Make an external reference to "__tls_used" symbol That technique is used in many projects. This patch is to support that. What this patch does is to set the relative virtual address of "__tls_used" to the PECOFF directory table. __tls_used is actually a struct containing pointers to a symbol in .CRT$XLA and another symbol in .CRT$XLZ. The runtime looks at the directory table, gets the address of the struct, and call the function pointers between XLA and XLZ. llvm-svn: 218007
* Sema: Diagnose undefined structs used as Microsoft anonymous structsDavid Majnemer2014-09-182-5/+19
| | | | | | | | | | | | | | | Previously, we would not mark structs containing anonymous structs as invalid. Later, horrific things would occur when trying to determine the size of the parent record. Instead, require the struct to be a complete type when used as an anonymous struct. Mark both the anonymous field for the struct and the parent context as invalid (this is similar to what we do when a struct contains a field with an incomplete type.) This fixes PR11847. llvm-svn: 218006
* Add file to CMake build as well.Eric Christopher2014-09-181-0/+1
| | | | llvm-svn: 218005
* Add a new pass FunctionTargetTransformInfo. This pass serves as aEric Christopher2014-09-1810-19/+135
| | | | | | | | | | | shim between the TargetTransformInfo immutable pass and the Subtarget via the TargetMachine and Function. Migrate a single call from BasicTargetTransformInfo as an example and provide shims where TargetMachine begins taking a Function to determine the subtarget. No functional change. llvm-svn: 218004
* Fix test case.Akira Hatanaka2014-09-181-2/+2
| | | | | | This is another follow-up patch to r217996. llvm-svn: 218003
* Fix the ability of "lldb-platform" to upload files.Greg Clayton2014-09-181-6/+7
| | | | | | | | The issue was GDBRemoteCommunication::CheckForPacket() already fixes up any prefixed bytes (0x7d followed by value that is XOR'ed with 0x20). If we do this again, we cause binary packets to lose bytes. This allows lldb-platform to be able to upload binaries and debug them remotely. llvm-svn: 218002
* Hex encode the triple values in case they contain special characters.Greg Clayton2014-09-182-5/+17
| | | | llvm-svn: 218001
* Add better logging for the "$vFile:pwrite:" packet so we can show binary ↵Greg Clayton2014-09-181-5/+33
| | | | | | data instead of nothing or unprintable characters. This can easily be extended for other packets that have binary data. llvm-svn: 218000
* Listen to the return value of the Platform::WriteFile() call within ↵Greg Clayton2014-09-181-2/+20
| | | | | | PlatformPOSIX::PutFile() in case we write less than we wanted to. Also adjust the input stream's offset in such cases. llvm-svn: 217999
* Retry remote connection one time in case of timeout and return an error that ↵Greg Clayton2014-09-181-0/+6
| | | | | | specifies why debugging failed. llvm-svn: 217998
* Skip parens when detecting whether we're instantiating a function declaration.Richard Smith2014-09-182-2/+9
| | | | llvm-svn: 217997
* Fix test case.Akira Hatanaka2014-09-181-1/+1
| | | | | | This is a follow-up to r217994. llvm-svn: 217996
* Instantiate exception specifications when instantiating function types (otherRichard Smith2014-09-1715-241/+410
| | | | | | | | | | than the type of a function declaration). We previously didn't instantiate these at all! This also covers the pathological case where the only mention of a parameter pack is within the exception specification; this gives us a second way (other than alias templates) to reach the horrible state where a type contains an unexpanded pack, but its canonical type does not. llvm-svn: 217995
* [X86, inline-asm] Check that the input size is correct for constraints R, q, Q,Akira Hatanaka2014-09-172-1/+48
| | | | | | | | | | | S, D, A, y, x, f, t, and u. This is a follow-up patch for r167717. rdar://problem/11846140 rdar://problem/17476970 llvm-svn: 217994
* Fix FastISel bug in boolean returns for PowerPC.Samuel Antao2014-09-172-24/+67
| | | | | | For PPC targets, FastISel does not take the sign extension information into account when selecting return instructions whose operands are constants. A consequence of this is that the return of boolean values is not correct. This patch fixes the problem by evaluating the sign extension information also for constants, forwarding this information to PPCMaterializeInt which takes this information to drive the sign extension during the materialization. llvm-svn: 217993
* tsan: fix bug number in commentDmitry Vyukov2014-09-171-1/+1
| | | | llvm-svn: 217992
* Remove unnecessary blank space (test commit)Samuel Antao2014-09-171-1/+1
| | | | llvm-svn: 217991
* Reapply fix in r217988 (reverted in r217989) and remove the alternative fix ↵David Blaikie2014-09-172-5/+4
| | | | | | | | | | committed in r217987. This type isn't owned polymorphically (as demonstrated by making the dtor protected and everything still compiling) so just address the warning by protecting the base dtor and making the derived class final. llvm-svn: 217990
* Revert "Fix -Wnon-virtual-dtor warning introduced in r217982."David Blaikie2014-09-172-4/+1
| | | | | | | | An alternative fix was already committed. This reverts commit r217988. llvm-svn: 217989
* Fix -Wnon-virtual-dtor warning introduced in r217982.David Blaikie2014-09-172-1/+4
| | | | llvm-svn: 217988
* Fixing the sanitizer build failure:Chris Bieneman2014-09-171-0/+4
| | | | | | http://lab.llvm.org:8011/builders/sanitizer-x86_64-linux/builds/12868/steps/annotate/logs/stdio llvm-svn: 217987
OpenPOWER on IntegriCloud