- 15 May, 2015 2 commits
-
-
Daniel Sanders authored
llvm-svn: 237433
-
Daniel Sanders authored
Revert r235869 - [mips] Avoid redundant sign extension of the result of binary bitwise instructions. It introduced two regressions (MultiSource/Benchmarks/tramp3d-v4/tramp3d-v4, and MultiSource/Applications/kimwitu++/kc) on 3 out of 23 cross-compilation test-runs used by Mips for release validation. The issue is that on 64-bit targets comparisons such as BEQ compare the whole GPR64 but incorrectly tell the instruction selector that they operate on GPR32's. This leads to the elimination of i32->i64 extensions that are actually required by comparisons to work correctly. llvm-svn: 237432
-
- 11 May, 2015 1 commit
-
-
Tom Stellard authored
```--------------------------------------------------------------------- r226124 | hans | 2015-01-14 23:36:20 -0500 (Wed, 14 Jan 2015) | 2 lines utils/release/tag.sh: fix -revision vs. -rc check ``` --------------------------------------------------------------------- llvm-svn: 237015
-
- 08 May, 2015 8 commits
-
-
Eric Fiselier authored
llvm-svn: 236872
-
Tom Stellard authored
```--------------------------------------------------------------------- r236299 | ericwf | 2015-04-30 18:49:37 -0700 (Thu, 30 Apr 2015) | 7 lines Disallow conversions from function pointers to void*. Function pointers and member function pointers cannot be converted to void*. libc++abi incorrectly allows this conversion for function pointers. Review URL: http://reviews.llvm.org/D8811 ``` --------------------------------------------------------------------- llvm-svn: 236868
-
Tom Stellard authored
```--------------------------------------------------------------------- r234254 | ericwf | 2015-04-06 16:03:01 -0700 (Mon, 06 Apr 2015) | 25 lines [libcxxabi] Disallow Base to Derived conversions for catching pointers to members. Summary: I accidentally implemented the 4.11 [conv.mem] conversions for libc++abi in a recent patch. @majnemer pointed out that 5.13 [except.handle] only allows the pointer conversions in 4.10 and not those is 4.11. This patch no longer allows the following example code: ```c++ struct A {}; struct B : public A {}; int main() { try { throw (int A::*)0; } catch (int B::*) { // exception caught here. } } ``` Reviewers: mclow.lists, jroelofs, majnemer Reviewed By: majnemer Subscribers: majnemer, cfe-commits Differential Revision: http://reviews.llvm.org/D8845 ``` --------------------------------------------------------------------- llvm-svn: 236866 -
Tom Stellard authored
llvm-svn: 236864
-
Tom Stellard authored
```--------------------------------------------------------------------- r233984 | ericwf | 2015-04-02 16:26:37 -0700 (Thu, 02 Apr 2015) | 22 lines [libcxxabi] Fix multi-level pointer conversions and pointer to member conversion detection. Summary: Currently there are bugs in out detection of multi-level pointer conversions and pointer to member conversions. This patch fixes the following issues. * Allow multi-level pointers with different nested qualifiers. * Allow multi-level mixed pointers to objects and pointers to members with different nested qualifiers. * Allow conversions from `int Base::*` to `int Derived::*` but only for non-nested pointers. There is still some work that needs to be done to clean this patch up but I want to get some input on it. Open questions: * Does `__pointer_to_member_type_info::can_catch(...)` need to adjust the pointer if a base to derived conversion is performed? Reviewers: danalbert, compnerd, mclow.lists Reviewed By: mclow.lists Subscribers: cfe-commits Differential Revision: http://reviews.llvm.org/D8758 ``` --------------------------------------------------------------------- llvm-svn: 236862
-
Tom Stellard authored
```--------------------------------------------------------------------- r231852 | ericwf | 2015-03-10 14:32:53 -0700 (Tue, 10 Mar 2015) | 1 line Remove unneeded const_cast in readPointerHelper. Pointed out by jroelofs ``` --------------------------------------------------------------------- llvm-svn: 236861
-
Tom Stellard authored
```--------------------------------------------------------------------- r231839 | ericwf | 2015-03-10 13:43:34 -0700 (Tue, 10 Mar 2015) | 11 lines [libcxx] Fix PR21580 - Undefined behavior in readEncodedPointer() Summary: This patch fixes a bug in `readEncodedPointer()` where it would read from memory that was not suitably aligned. This patch fixes it by using memcpy. Reviewers: danalbert, echristo, compnerd, mclow.lists Reviewed By: compnerd, mclow.lists Subscribers: cfe-commits Differential Revision: http://reviews.llvm.org/D8179 ``` --------------------------------------------------------------------- llvm-svn: 236860
-
Tom Stellard authored
```--------------------------------------------------------------------- r229413 | atrick | 2015-02-16 13:10:47 -0500 (Mon, 16 Feb 2015) | 16 lines AArch64: Safely handle the incoming sret call argument. This adds a safe interface to the machine independent InputArg struct for accessing the index of the original (IR-level) argument. When a non-native return type is lowered, we generate the hidden machine-level sret argument on-the-fly. Before this fix, we were representing this argument as OrigArgIndex == 0, which is an outright lie. In particular this crashed in the AArch64 backend where we actually try to access the type of the original argument. Now we use a sentinel value for machine arguments that have no original argument index. AArch64, ARM, Mips, and PPC now check for this case before accessing the original argument. Fixes <rdar://19792160> Null pointer assertion in AArch64TargetLowering ``` --------------------------------------------------------------------- llvm-svn: 236856
-
- 07 May, 2015 1 commit
-
-
Tom Stellard authored
```--------------------------------------------------------------------- r234977 | lhames | 2015-04-15 00:46:01 -0400 (Wed, 15 Apr 2015) | 5 lines [RuntimeDyld] Add casts to make delta computation 64-bit. Hopefully this will fix the i686/msvc build failure described at: http://bb.pgr.jp/builders/ninja-clang-i686-msc18-R/builds/803 ``` --------------------------------------------------------------------- llvm-svn: 236784
-
- 05 May, 2015 2 commits
-
-
Tom Stellard authored
```--------------------------------------------------------------------- r235931 | aaron | 2015-04-27 18:31:12 -0400 (Mon, 27 Apr 2015) | 2 lines Check whether the operand to a noexcept expression is valid or not. Fixes PR15842. ``` --------------------------------------------------------------------- llvm-svn: 236502
-
Tom Stellard authored
```--------------------------------------------------------------------- r230564 | spatel | 2015-02-25 17:46:08 -0500 (Wed, 25 Feb 2015) | 8 lines only propagate equality comparisons of FP values that we are certain are non-zero This is a follow-on to r227491 which tightens the check for propagating FP values. If a non-constant value happens to be a zero, we would hit the same bug as before. Bug noted and patch suggested by Eli Friedman. ``` --------------------------------------------------------------------- llvm-svn: 236499
-
- 04 May, 2015 13 commits
-
-
Tom Stellard authored
```--------------------------------------------------------------------- r236307 | thomas.stellard | 2015-04-30 23:44:09 -0400 (Thu, 30 Apr 2015) | 4 lines R600/SI: Add VCC as an implict def of SI_KILL When SI_KILL has a register operand, its lowered form writes to vcc. ``` --------------------------------------------------------------------- llvm-svn: 236452
-
Tom Stellard authored
```--------------------------------------------------------------------- r236306 | thomas.stellard | 2015-04-30 23:44:08 -0400 (Thu, 30 Apr 2015) | 11 lines R600/SI: Fix verifier errors from the SIAnnotateControlFlow pass This pass was generating 'Instruction does not dominate all uses!' errors for programs which had loops with a condition variable that depended on the result of a phi instruction from outside of the loop. The pass was inserting new phi nodes outside of the loop which used values defined inside the loop. http://bugs.freedesktop.org/show_bug.cgi?id=90056 ``` --------------------------------------------------------------------- llvm-svn: 236451
-
Tom Stellard authored
```--------------------------------------------------------------------- r235662 | thomas.stellard | 2015-04-23 18:59:24 -0400 (Thu, 23 Apr 2015) | 2 lines R600: Correctly lower CONCAT_VECTOR nodes with more than 2 operands ``` --------------------------------------------------------------------- llvm-svn: 236450
-
Tom Stellard authored
```--------------------------------------------------------------------- r235641 | thomas.stellard | 2015-04-23 16:32:01 -0400 (Thu, 23 Apr 2015) | 9 lines R600/SI: Fix indirect addressing with a negative constant offset When the base register index of the vector plus the constant offset was less than zero, we were passing the wrong base register to the indirect addressing instruction. In this case, we need to set the base register to v0 and then add the computed (negative) index to m0. ``` --------------------------------------------------------------------- llvm-svn: 236449
-
Tom Stellard authored
```--------------------------------------------------------------------- r235524 | Matthew.Arsenault | 2015-04-22 13:10:44 -0400 (Wed, 22 Apr 2015) | 4 lines R600: Fix always inline pass breaking noinline functions No test since calls are not actually supported yet. ``` --------------------------------------------------------------------- llvm-svn: 236448
-
Tom Stellard authored
This effectively reverts the part of r236303, which added a new member to the GCOVOptions and broke ABI compatibility with 3.6.0. llvm-svn: 236445
-
Tom Stellard authored
```--------------------------------------------------------------------- r232786 | david.majnemer | 2015-03-19 20:02:27 -0400 (Thu, 19 Mar 2015) | 7 lines Don't crash-on-valid when an inline function is friend of class template We assumed that the most recent declaration of an inline function would also be inline. However, a more recent declaration can come from a friend declaration in a class template that is instantiated at the definition of the function. ``` --------------------------------------------------------------------- llvm-svn: 236442
-
Tom Stellard authored
```--------------------------------------------------------------------- r232675 | rtrieu | 2015-03-18 17:52:47 -0400 (Wed, 18 Mar 2015) | 9 lines When cloning LocalInstantiationScope's, don't update the current scope in Sema. Construction of LocalInstantiationScope automatically updates the current scope inside Sema. However, when cloning a scope, the current scope does not change. Change the cloning function to preserve the current scope. Review: http://reviews.llvm.org/D8407 BUG: https://llvm.org/bugs/show_bug.cgi?id=22931 ``` --------------------------------------------------------------------- llvm-svn: 236441
-
Tom Stellard authored
```--------------------------------------------------------------------- r232425 | rtrieu | 2015-03-16 17:49:43 -0400 (Mon, 16 Mar 2015) | 4 lines Take the non-reference type when constructing a dummy expression. Otherwise, Expr will assert during construction with a reference type. ``` --------------------------------------------------------------------- llvm-svn: 236440
-
Tom Stellard authored
```--------------------------------------------------------------------- r230603 | rtrieu | 2015-02-25 21:40:48 -0500 (Wed, 25 Feb 2015) | 8 lines Update assumption in template diffing about integer template arguments. Fix for PR22017. Integer template arguments are automatically bit extended to the size of the integer type. In template diffing, evaluated expressions were not having their results extending, leading to comparing two APSInt's with different widths. Apply the proper bit extending when evaluating template arguments. This mainly affected bool template arguments. ``` --------------------------------------------------------------------- llvm-svn: 236439
-
Tom Stellard authored
```--------------------------------------------------------------------- r226983 | rtrieu | 2015-01-23 21:48:32 -0500 (Fri, 23 Jan 2015) | 16 lines When checking the template argument list, use a copy of that list for changes and only update the orginal list on a valid arugment list. When checking an individual expression template argument, and conversions are required, update the expression in the template argument. Since template arguments are speculatively checked, the copying of the template argument list prevents updating the template arguments when the list does not match the template. Additionally, clean up the integer checking code in the template diffing code. The code performs unneccessary conversions from APSInt to APInt. Fixes PR21758. This essentially reverts r224770 to recommits r224667 and r224668 with extra changes to prevent the template instantiation problems seen in PR22006. A test to catch the discovered problem is also added. ``` --------------------------------------------------------------------- llvm-svn: 236438
-
Tom Stellard authored
This reverts commit r236305. This commit requires an ABI change to LLVM, which is not allowed for stable releases. llvm-svn: 236437
-
Daniel Sanders authored
llvm-svn: 236417
-
- 02 May, 2015 2 commits
-
-
Tom Stellard authored
```--------------------------------------------------------------------- r227574 | geek4civic | 2015-01-30 08:01:19 -0500 (Fri, 30 Jan 2015) | 2 lines [Cygming] Seek also chkstk_ms, or JIT fails with DLL builds. It is fixup for r227519. ``` --------------------------------------------------------------------- llvm-svn: 236379
-
Tom Stellard authored
```--------------------------------------------------------------------- r227519 | reid | 2015-01-29 18:58:04 -0500 (Thu, 29 Jan 2015) | 10 lines x86: Fix large model calls to __chkstk for dynamic allocas In the large code model, we now put __chkstk in %r11 before calling it. Refactor the code so that we only do this once. Simplify things by using __chkstk_ms instead of __chkstk on cygming. We already use that symbol in the prolog emission, and it simplifies our logic. Second half of PR18582. ``` --------------------------------------------------------------------- llvm-svn: 236378
-
- 01 May, 2015 4 commits
-
-
Tom Stellard authored
```--------------------------------------------------------------------- r232439 | mail | 2015-03-16 19:52:21 -0400 (Mon, 16 Mar 2015) | 7 lines GCOV: Expose the -coverage-exit-block-before-body flag in clang -cc1 This exposes the optional exit block placement logic from r232438 as a clang -cc1 option. There is a test on the llvm side, but there isn't really a way to inspect the gcov options from clang to test it here as well. ``` --------------------------------------------------------------------- llvm-svn: 236305
-
Tom Stellard authored
```--------------------------------------------------------------------- r232443 | mail | 2015-03-16 20:18:51 -0400 (Mon, 16 Mar 2015) | 4 lines llvm-cov: Warn instead of error if a .gcda has arcs from an exit block Patch by Vanderson M. Rosario. Thanks! ``` --------------------------------------------------------------------- llvm-svn: 236304
-
Tom Stellard authored
```--------------------------------------------------------------------- r232438 | mail | 2015-03-16 19:52:03 -0400 (Mon, 16 Mar 2015) | 6 lines GCOV: Make the exit block placement from r223193 optional By default we want our gcov emission to stay 4.2 compatible, which means we need to continue emit the exit block last by default. We add an option to emit it before the body for users that need it. ``` --------------------------------------------------------------------- llvm-svn: 236303
-
Tom Stellard authored
```--------------------------------------------------------------------- r227503 | reid | 2015-01-29 17:33:00 -0500 (Thu, 29 Jan 2015) | 11 lines Update comments to use unreachable instead of llvm.trap, as implemented now win64: Call __chkstk through a register with the large code model Fixes half of PR18582. True dynamic allocas will still have a CALL64pcrel32 which will fail. Reviewers: majnemer Differential Revision: http://reviews.llvm.org/D7267 ``` --------------------------------------------------------------------- llvm-svn: 236302
-
- 30 Apr, 2015 2 commits
-
-
Tom Stellard authored
```--------------------------------------------------------------------- r231259 | marek.olsak | 2015-03-04 12:33:45 -0500 (Wed, 04 Mar 2015) | 4 lines R600/SI: Add an intrinsic for S_FLBIT_I32 / V_FFBH_I32 Required by OpenGL (ARB_gpu_shader5). ``` --------------------------------------------------------------------- llvm-svn: 236263
-
Daniel Sanders authored
```--------------------------------------------------------------------- r236099 | dsanders | 2015-04-29 13:28:58 +0100 (Wed, 29 Apr 2015) | 13 lines [mips] Correct 128-bit shifts on 64-bit targets. Summary: The existing code was correct for 32-bit GPR's but not 64-bit GPR's. It now accounts for both cases. Reviewers: vkalintiris Reviewed By: vkalintiris Subscribers: llvm-commits, mohit.bhakkad, sagar Differential Revision: http://reviews.llvm.org/D9337 ``` --------------------------------------------------------------------- llvm-svn: 236215
-
- 29 Apr, 2015 5 commits
-
-
Pawel Bylica authored
Bonus: unused variable removed. llvm-svn: 236116
-
Daniel Sanders authored
The previous attempt at fixing this only moved the problem to the subclass vtable. We can safely move the function into the subclass so attempt to fix it that way. llvm-svn: 236112
-
Pawel Bylica authored
Constant folding for shift IR instructions ignores all bits above 32 of second argument (shift amount). Because of that, some undef results are not recognized and APInt can raise an assert failure if second argument has more than 64 bits. Patch by Paweł Bylica! Differential Revision: http://reviews.llvm.org/D7701 llvm-svn: 236109
-
Pawel Bylica authored
CodeGen incorrectly ignores (assert from APInt) constant index bigger than 2^64 in getelementptr instruction. This is a test and fix for that. Patch by Paweł Bylica! Reviewed By: rnk Subscribers: majnemer, rnk, mcrosier, resistor, llvm-commits Differential Revision: http://reviews.llvm.org/D8219 llvm-svn: 236108
-
Daniel Sanders authored
llvm-svn: 236094
-