- Mar 10, 2015
-
-
Igor Laevsky authored
Teach lowering to correctly handle invoke statepoint and gc results tied to them. Note that we still can not lower gc.relocates for invoke statepoints. Also it extracts getCopyFromRegs helper function in SelectionDAGBuilder as we need to be able to customize type of the register exported from basic block during lowering of the gc.result. (Resubmitting this change after not being able to reproduce buildbot failure) Differential Revision: http://reviews.llvm.org/D7760 llvm-svn: 231800
-
Chad Rosier authored
When tail merging it may be necessary to remove MMOs from memory operations to ensures later passes (e.g., MI sched) conservatively compute dependencies. Currently, we only remove the MMO from the common tail if the MMO doesn't match with the relative instruction in the non-common tail(s). A more robust solution would be to add multiple MMOs from the duplicate MIs to the new MI. Currently ScheduleDAGInstrs.cpp ignores all MMOs on instructions with multiple MMOs, so this solution is equivalent for the time being. No test case included as this is incredibly difficult to reproduce. Patch was a collaborative effort between Ana Pazos and myself. Phabricator: http://reviews.llvm.org/D7769 llvm-svn: 231799
-
Tom Stellard authored
llvm-svn: 231798
-
Tom Stellard authored
llvm-svn: 231797
-
Tom Stellard authored
This fixes a machine verifier error in the salu-to-valu.ll, which would have been exposed by a future commit. llvm-svn: 231796
-
Tom Stellard authored
This was done by refactoring the v_cndmask_b32 tablegen definition to use inherit from VOP2Inst. llvm-svn: 231795
-
Sanjay Patel authored
We want to replace as much custom x86 shuffling via intrinsics as possible because pushing the code down the generic shuffle optimization path allows for better codegen and less complexity in LLVM. This is the sibling patch for the Clang half of this change: http://reviews.llvm.org/D8088 Differential Revision: http://reviews.llvm.org/D8086 llvm-svn: 231794
-
Tobias Grosser authored
The corresponding LLVM commit is 231740. llvm-svn: 231793
-
Sanjay Patel authored
We want to replace as much custom x86 shuffling via intrinsics as possible because pushing the code down the generic shuffle optimization path allows for better codegen and less complexity in LLVM. This is the sibling patch for the LLVM half of this change: http://reviews.llvm.org/D8086 Differential Revision: http://reviews.llvm.org/D8088 llvm-svn: 231792
-
Benjamin Kramer authored
llvm-svn: 231791
-
Rafael Espindola authored
Switching back and forth between sections does nothing (other than producing larger .s files). llvm-svn: 231790
-
Ben Langmuir authored
Fixes PR18985 Patch by Vassil Vassilev! llvm-svn: 231789
-
Karthik Bhat authored
This crash occurs due to memory corruption when trying to update dependency direction based on Constraints. This crash was observed during lnt regression of Polybench benchmark test case dynprog. Review: http://reviews.llvm.org/D8059 llvm-svn: 231788
-
Renato Golin authored
Using clang as a cross-compiler with the 'target' option could be confusing for those inexperienced in the realm of cross compiling. This patch would allow the use of all these four variants of the target option: -target <triple> --target <triple> -target=<triple> --target=<triple> Patch by Gabor Ballabas. llvm-svn: 231787
-
Rafael Espindola authored
llvm-svn: 231786
-
Aaron Ballman authored
Removing dead code to silence warning C4060: switch statement contains no 'case' or 'default' labels; NFC. llvm-svn: 231785
-
Karthik Bhat authored
This crash in Dependency analysis is because we assume here that in case of UsefulGEP both source and destination have the same number of operands which may not be true. This incorrect assumption results in crash while populating Pairs. Fix the same. This crash was observed during lnt regression for code such as- struct s{ int A[10][10]; int C[10][10][10]; } S; void dep_constraint_crash_test(int k,int N) { for( int i=0;i<N;i++) for( int j=0;j<N;j++) S.A[0][0] = S.C[0][0][k]; } Review: http://reviews.llvm.org/D8162 llvm-svn: 231784
-
Daniel Sanders authored
Summary: This is part of the work to support memory constraints that behave differently to 'm'. The subsequent patches will expand on the existing encoding (which is a 32-bit int) and as a result in some flag words will no longer fit into an i16. This problem only affected the MSP430 target which appears to have 16-bit pointers. Reviewers: hfinkel Reviewed By: hfinkel Subscribers: hfinkel, llvm-commits Differential Revision: http://reviews.llvm.org/D8168 llvm-svn: 231783
-
Dmitry Vyukov authored
Power is 64-bit but does not support leak detection, so this test fails. Use the more robust leak-detection predicate instead. llvm-svn: 231782
-
Andrey Churbanov authored
llvm-svn: 231781
-
Ed Schouten authored
Before I discovered that NetBSD provides a permanent handle to the C locale called LC_C_LOCALE, I also added support for this to CloudABI under the name LC_POSIX_LOCALE. I've renamed it to LC_C_LOCALE to improve compatibility. llvm-svn: 231780
-
Andrey Churbanov authored
llvm-svn: 231779
-
Andrey Churbanov authored
llvm-svn: 231778
-
Ed Schouten authored
CloudABI provides the _l() functions that are part of POSIX.1-2008, but also the extensions that are available on systems like OS X and *BSD (scanf_l, printf_l, etc). llvm-svn: 231777
-
Andrey Churbanov authored
llvm-svn: 231776
-
Andrey Churbanov authored
llvm-svn: 231775
-
Andrey Churbanov authored
llvm-svn: 231774
-
Andrey Churbanov authored
llvm-svn: 231773
-
Chandler Carruth authored
built before running the test suite. llvm-svn: 231770
-
Chandler Carruth authored
the test when run frem a read-only checkout of the source tree. llvm-svn: 231769
-
Ed Schouten authored
As CloudABI does not provide sysctl(), this header is not present. Make thread.cpp build correctly (and pass all tests) by not including the header. llvm-svn: 231768
-
Ed Schouten authored
There are a couple of places where libc++ prints log/error messages to stdout on its own. This may of course interfere with the output generated with applications. Log/error messages should be directed to stderr instead. Differential Revision: http://reviews.llvm.org/D8135 Reviewed by: marshall llvm-svn: 231767
-
Chandler Carruth authored
conventions. Sorry for missing this before I committed the patch! llvm-svn: 231766
-
Chandler Carruth authored
of the vector. For a vector 'v', '&v[v.size()]' isn't a valid way to compute a pointer one-past-the-end of the vector. Instead, write the loop in terms of iterators and save the beginning iterator. Once we have that we can compute the beginning pointer from the beginning iterator, and compute the distance which we should increment the beginning pointer by subtracting the iterators. What might be simpler would be to convert the function accepting a raw pointer for begin and end to accept iterators or a range or some other construct, but I wanted to keep this to a minimal bug-fix change. This fixes a crash on any debug STL implementation which checks for indexing out of bounds. llvm-svn: 231765
-
Ed Schouten authored
Nuxi CloudABI (https://github.com/NuxiNL/cloudlibc) does not allow processes to access the global filesystem namespace. This breaks random_device, as it attempts to use /dev/{u,}random. This change adds support for arc4random(), which is present on CloudABI. In my opinion it would also make sense to use arc4random() on other operating systems, such as *BSD and Mac OS X, but I'd rather leave that to the maintainers of the respective platforms. Switching to arc4random() does change the ABI. This change also attempts to make some cleanups to the code. It adds a single #define for every random interface, instead of testing against operating systems explicitly. As discussed, also validate the token argument to be equal to "/dev/urandom" on all systems that only provide pseudo-random numbers. This should cause little to no breakage, as "/dev/urandom" is also the default argument value. Reviewed by: jfb Differential Revision: http://reviews.llvm.org/D8134 llvm-svn: 231764
-
Yaron Keren authored
Saves adding .str() call to any raw_ostream << SmallString usage and a small step towards making .str() consistent in the ADTs by removing one of the SmallString::str() use cases, discussion at http://lists.cs.uiuc.edu/pipermail/llvm-commits/Week-of-Mon-20141013/240026.html I'll update the Phabricator patch http://reviews.llvm.org/D6372 for review of the Twine SmallString support, it's more complex than this one. llvm-svn: 231763
-
Alexey Bataev authored
The task region is emmitted in several steps: Emit a call to kmp_task_t *__kmpc_omp_task_alloc(ident_t *, kmp_int32 gtid, kmp_int32 flags, size_t sizeof_kmp_task_t, size_t sizeof_shareds, kmp_routine_entry_t *task_entry). Here task_entry is a pointer to the function: kmp_int32 .omp_task_entry.(kmp_int32 gtid, kmp_task_t *tt) { TaskFunction(gtid, tt->part_id, tt->shareds); return 0; } Copy a list of shared variables to field shareds of the resulting structure kmp_task_t returned by the previous call (if any). Copy a pointer to destructions function to field destructions of the resulting structure kmp_task_t. Emit a call to kmp_int32 __kmpc_omp_task(ident_t *, kmp_int32 gtid, kmp_task_t *new_task), where new_task is a resulting structure from previous items. Differential Revision: http://reviews.llvm.org/D7560 llvm-svn: 231762
-
Owen Anderson authored
llvm-svn: 231761
-
Owen Anderson authored
We failed to use a marking set to properly handle recursive types, which caused use to recurse infinitely and eventually overflow the stack. llvm-svn: 231760
-
Owen Anderson authored
Fix an issue in the verifier where we could try to read information out of a malformed statepoint intrinsic. In this situation we would always have already flagged an error on the statepoint intrinsic, but then we carry on to parse other, related GC intrinsics, and could end up crashing during that verification when they try to access data from the malformed statepoint. llvm-svn: 231759
-