summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
...
* Fix Sparc 32bit Lowering to rebundle up v2i32 values.Nirav Dave2016-02-262-4/+56
| | | | | | | | | | | | Summary: Fix LowerCall to rebundle v2i32 values after lowering and add testcase Reviewers: jyknight Subscribers: llvm-commits, jyknight Differential Revision: http://reviews.llvm.org/D17615 llvm-svn: 262048
* [x86, AVX] fold 'isPositive' 256-bit vector integer operations (PR26701)Sanjay Patel2016-02-262-14/+17
| | | | | | | This extends the fold introduced with: http://reviews.llvm.org/rL262036 llvm-svn: 262047
* tsan: revert r262037Dmitry Vyukov2016-02-2618-226/+99
| | | | | | Broke aarch64 and darwin bots. llvm-svn: 262046
* [IR] Optimize bitfield layout of Value for MSVCReid Kleckner2016-02-264-31/+30
| | | | | | | | | | | | | | | This should save a pointer of padding from all MSVC Value subclasses. Recall that MSVC will not pack the following bitfields together: unsigned Bits : 29; unsigned Flag1 : 1; unsigned Flag2 : 1; unsigned Flag3 : 1; Add a static_assert because LLVM developers always trip over this behavior. This regressed in June. llvm-svn: 262045
* [x86, AVX] add 256-bit testsSanjay Patel2016-02-261-0/+136
| | | | llvm-svn: 262044
* remove unused local string in IRForTarget.cppAidan Dodds2016-02-261-2/+0
| | | | | | | | Committed on behalf of: ldrumm <luke.drummond@codeplay.com> Differential revision: http://reviews.llvm.org/D16412 llvm-svn: 262043
* Minor tweak to match the overall style.Sunil Srivastava2016-02-261-2/+2
| | | | llvm-svn: 262042
* Fix bug with register values byte order in expression evaluation.Aidan Dodds2016-02-261-3/+9
| | | | | | | | | | The evaluation of expressions containing register values was broken for targets for which endianness differs from host. Committed on behalf of: mamai <marianne.mailhot.sarrasin@gmail.com> Differential revision: http://reviews.llvm.org/D17167 llvm-svn: 262041
* The IOHandlerProcessSTDIO is the _only_ IOHandler that gets pushed and ↵Greg Clayton2016-02-261-3/+22
| | | | | | | | | | | | | | popped from functions that are run due to something that is NOT input from the user. All other IOHandler objects result from input from the user. An issue rose up where if a command caused the process to resume and stop and process state changed, where state changed Event objects were broadcast, it would cause the IOHandlerProcessSTDIO to have its IOHandlerProcessSTDIO::Cancel() function called. This used to always write a byte to the control pipe (IOHandlerProcessSTDIO::m_pipe) even if the IOHandlerProcessSTDIO::Run() was never called. What would happen is: (lldb) command_that_steps_process_thousands_of_times As the "command_that_steps_process_thousands_of_times" could be a python command that resumed the process thousands of times and in doing so the IOHandlerProcessSTDIO would get pushed when the process resumed, and popped when it stoppped, causing the call to IOHandlerProcessSTDIO::Cancel(). Since the IOHandler thread is currently in IOHandlerEditline::Run() for the command interpreter handling the "command_that_steps_process_thousands_of_times" command, IOHandlerProcessSTDIO::Run() would never get called, even though the IOHandlerProcessSTDIO is on the top of the stack. This caused the command pipe to keep getting 1 bytes written each time the IOHandlerProcessSTDIO::Cancel() was called and eventually we will deadlock since the write buffer is full. The fix here is to make sure we are in IOHandlerProcessSTDIO::Run() before we write anything to the command pipe, and just call SetIsDone(true) if we are not. <rdar://problem/22361364> llvm-svn: 262040
* Introduce fine-grain dependence analysis by tagging access functions and ↵Hongbin Zheng2016-02-265-3/+175
| | | | | | | | schedules tree with either the id of memory access or memory references. Differential Revision: http://reviews.llvm.org/D17381 llvm-svn: 262039
* [CMAKE] Update build on recent HaikuRenato Golin2016-02-264-3/+8
| | | | | | | | | This patch updates cmake build scripts to build on Haiku. It adds Haiku x86_64 to config.guess. Please consider reviewing. Pathc by Jérôme Duval. llvm-svn: 262038
* tsan: split thread into logical and physical stateDmitry Vyukov2016-02-2618-99/+226
| | | | | | | | | | | | | | | | | | | | Currently ThreadState holds both logical state (required for race-detection algorithm, user-visible) and physical state (various caches, most notably malloc cache). Move physical state in a new Process entity. Besides just being the right thing from abstraction point of view, this solves several problems: 1. Cache everything on P level in Go. Currently we cache on a mix of goroutine and OS thread levels. This unnecessary increases memory consumption. 2. Properly handle free operations in Go. Frees are issue by GC which don't have goroutine context. As the result we could not do anything more than just clearing shadow. For example, we leaked sync objects and heap block descriptors. 3. This will allow to get rid of libc malloc in Go (now we have Processor context for internal allocator cache). This in turn will allow to get rid of dependency on libc entirely. 4. Potentially we can make Processor per-CPU in C++ mode instead of per-thread, which will reduce resource consumption. The distinction between Thread and Processor is currently used only by Go, C++ creates Processor per OS thread, which is equivalent to the current scheme. llvm-svn: 262037
* [x86, SSE] fold 'isPositive' vector integer operations (PR26701)Sanjay Patel2016-02-262-37/+121
| | | | | | | | | | | | | This is one of the cases shown in: https://llvm.org/bugs/show_bug.cgi?id=26701 Shift and negate is what InstCombine appears to prefer, so I've started with that pattern. Note that the 'pcmpeq' instructions are always generating the negative one for the actual 'pcmpgt' comparison in each case (side note: why isn't there an alias mnemonic for that?). Differential Revision: http://reviews.llvm.org/D17630 llvm-svn: 262036
* [WinEH] Fix funclet return block clobber mask placementReid Kleckner2016-02-262-2/+79
| | | | | | | | | | | | | | | | | | MBB slot index intervals are half open, not closed. getMBBEndIndex() returns the slot index of the start of the next block in layout order. Placing a register mask there is incorrect if the successor of the funclet return is not laid out after the return. Clang generates IR for catch bodies before generating the following normal code, so we never noticed this issue until the D frontend authors filed a bug about it. Instead, we can put the clobber mask on the last instruction of the funclet return block. We still aren't using a register mask operand on the CATCHRET instruction because it would cause PEI to spill all CSRs, including XMM regs, in the prologue. Fixes PR26679. llvm-svn: 262035
* Fix broken buildbots.Rui Ueyama2016-02-261-1/+1
| | | | llvm-svn: 262034
* ScopDetect/Info: Add option to disable invariant load hoistingTobias Grosser2016-02-263-20/+31
| | | | | | This is helpful for test case reduction and other experiments. llvm-svn: 262033
* ScopDetection: Fix mix-up of isLoad and isStore.Michael Kruse2016-02-261-2/+2
| | | | | | | | | This was accidentally introduced in r258947. Thanks to Hongbin Zheng for finding this. Found-by: etherzhhb llvm-svn: 262032
* Simplify. NFC.Rui Ueyama2016-02-261-21/+13
| | | | | | | | | Regarding the comment, it is out of context because it describes what it does not do there. It got too long because it was originally two different comments that were simply merged together. The semantics is described in fixAbsoluteSymbols, so we don't need it. llvm-svn: 262031
* Basic: fix __USER_LABEL_PREFIX__ on CygwinSaleem Abdulrasool2016-02-262-0/+8
| | | | | | | | Adjust the user label prefix for cygwin x86_64. Resolves PR26744. llvm-svn: 262030
* Reduce indention. NFC.Michael Kruse2016-02-261-55/+57
| | | | | | | | | The functions buildAccessMultiDimFixed and buildAccessMultiDimParam were refactored from buildMemoryAccess. In their own functions, the control flow can be shortcut and simplified using returns. Suggested-by: etherzhhb llvm-svn: 262029
* Add new java plugin files to the xcode projectTamas Berghammer2016-02-261-0/+50
| | | | llvm-svn: 262028
* Simplify. NFC.Rui Ueyama2016-02-261-3/+2
| | | | llvm-svn: 262027
* Add comment on AMDGPU that the difference has no obvious reason.Rui Ueyama2016-02-262-4/+9
| | | | llvm-svn: 262026
* Reduce false positives in printf/scanf format checkerAndy Gibbs2016-02-263-36/+176
| | | | | | | | | | | | | | | Summary: The printf/scanf format checker is a little over-zealous in handling the conditional operator. This patch reduces work by not checking code-paths that are never used and reduces false positives regarding uncovered arguments, for example in the code fragment: printf(minimal ? "%i\n" : "%i: %s\n", code, msg); Reviewers: rtrieu Subscribers: cfe-commits Differential Revision: http://reviews.llvm.org/D15636 llvm-svn: 262025
* [clang-tidy] Fix an assertion failure in `modernize-use-nullptr` check.Haojian Wu2016-02-262-1/+13
| | | | | | | | | | Reviewers: alexfh Subscribers: cfe-commits Differential Revision: http://reviews.llvm.org/D17640 llvm-svn: 262024
* Revert part of rL262014 as it caused issues on gcc-i386Tamas Berghammer2016-02-261-4/+0
| | | | llvm-svn: 262023
* Fix unsafe dereference.Rui Ueyama2016-02-261-2/+2
| | | | | | | Bound may point to one element beyond the end of the vector, so *Bound is not safe. llvm-svn: 262022
* Add mips32 software breakpoints into ↵Aidan Dodds2016-02-261-0/+2
| | | | | | | | | | platform::GetSoftwareBreakpointTrapOpcode(). The software breakpoint definitions for mips32 should have been included in my recent patch that moved the software breakpoint definitions into the base platform class. llvm-svn: 262021
* [ELF] - Implemented linkerscript sections padding.George Rimar2016-02-264-9/+117
| | | | | | | | | | | | | | | BSD linker scripts contain special cases to add NOP padding to code sections. Syntax is next: .init: { KEEP (*(.init)) } =0x90909090 (0x90 is NOP) This patch implements that functionality. llvm-svn: 262020
* Description of symbols is avalable here:George Rimar2016-02-264-6/+154
| | | | | | | | | | | | | | | | | | | | | | | | https://docs.oracle.com/cd/E53394_01/html/E54766/u-etext-3c.html It is said that: _etext - The address of _etext is the first location after the last read-only loadable segment. _edata - The address of _edata is the first location after the last read-write loadable segment. _end - If the address of _edata is greater than the address of _etext, the address of _end is same as the address of _edata. In real life _end and _edata has different values for that case. Both gold/bfd set _edata to the end of the last non SHT_NOBITS section. This patch do the same for consistency. It should fix the https://llvm.org/bugs/show_bug.cgi?id=26729. Differential revision: http://reviews.llvm.org/D17601 llvm-svn: 262019
* Refactor multiple calls to canBePreempted.Rafael Espindola2016-02-262-6/+6
| | | | llvm-svn: 262018
* Fix some confusion about what can be preempted.Rafael Espindola2016-02-2610-81/+72
| | | | | | | | | | | For shared libraries we allow any weak undefined symbol to eventually be resolved, even if we never see a definition in another .so. This matches the behavior when handling other undefined symbols in a shared library. For executables, we require seeing a definition in a .so or resolve it to zero. This is also similar to how non weak symbols are handled. llvm-svn: 262017
* Fix address class lookup for absolute symbolsTamas Berghammer2016-02-261-1/+5
| | | | llvm-svn: 262016
* Add a set of new plugins to handle Java debuggingTamas Berghammer2016-02-2622-3/+3110
| | | | | | | | | The purpose of these plugins is to make LLDB capable of debugging java code JIT-ed by the android runtime. Differential revision: http://reviews.llvm.org/D17616 llvm-svn: 262015
* Add support for DW_OP_push_object_address in dwarf expressionsTamas Berghammer2016-02-268-22/+64
| | | | | | | | | Additionally fix the type of some dwarf expression where we had a confusion between scalar and load address types after a dereference. Differential revision: http://reviews.llvm.org/D17604 llvm-svn: 262014
* Fixing an issue with the code block so that it does not appear as a list.Aaron Ballman2016-02-261-9/+5
| | | | llvm-svn: 262013
* Giving this attribute documentation group a heading; fixes a documentation ↵Aaron Ballman2016-02-261-3/+7
| | | | | | generation error. llvm-svn: 262012
* [LLDB][MIPS] Fix TestInferiorAssert.py for MIPSSagar Thakur2016-02-261-0/+4
| | | | | | | | | | | Patch by Nitesh Jain. Summary: The debug version of libc.so is require for backtracing which may not be available on all platforms. Reviewers: ovyalov, clayborg Subscribers: zturner, lldb-commits, mohit.bhakkad, sagar, bhushan, jaydeep Differential: http://reviews.llvm.org/D17131 llvm-svn: 262011
* BlockGenerators: Allow values to be removed from ScalarMapTobias Grosser2016-02-261-0/+11
| | | | | | | This function is not yet used in Polly, but is useful to external projects that generate multi-module code using Polly. llvm-svn: 262010
* IslAst: Expose run-time check generation as individual functionTobias Grosser2016-02-262-4/+16
| | | | | | | | This allows to construct run-time checks for a scop without having to generate a full AST. This is currently not taken advantage of in Polly itself, but external users may benefit from this feature. llvm-svn: 262009
* [PM] Finish removing references to fix MSVC builds. Somehow adding baseChandler Carruth2016-02-261-8/+16
| | | | | | | | | classes changed whether the decltype of these expressions was a reference. I'm somewhat horrified why, and there may need to be a deeper fix on MSVC, but this should at least get the bots a step further. llvm-svn: 262008
* Reverting breaking change. Sorry.Chris Dewhurst2016-02-266-334/+21
| | | | llvm-svn: 262007
* [PM] Speculative patch to try and fix MSVC's compilation.Chandler Carruth2016-02-261-1/+3
| | | | | | No idea why r262004 triggered this, but just trying to fix somehow. llvm-svn: 262006
* Reviewed at reviews.llvm.org/D17133Chris Dewhurst2016-02-266-21/+334
| | | | llvm-svn: 262005
* [PM] Introduce CRTP mixin base classes to help define passes andChandler Carruth2016-02-2659-454/+123
| | | | | | | | | | | | | | | | | analyses in the new pass manager. These just handle really basic stuff: turning a type name into a string statically that is nice to print in logs, and getting a static unique ID for each analysis. Sadly, the format of passes in anonymous namespaces makes using their names in tests really annoying so I've customized the names of the no-op passes to keep tests sane to read. This is the first of a few simplifying refactorings for the new pass manager that should reduce boilerplate and confusion. llvm-svn: 262004
* Initial test commit onlyChris Dewhurst2016-02-261-1/+0
| | | | llvm-svn: 262003
* Update to isl-0.16.1-68-g8fad211Tobias Grosser2016-02-2643-258/+1668
| | | | | | | | This commit updates to the latest isl development version. There is no specific feature we need on the Polly side, but we want to ensure test coverage for the latest isl changes. llvm-svn: 262001
* Use relative lines in CHECKs in race_on_mutex.cAlexander Kornienko2016-02-261-15/+14
| | | | llvm-svn: 262000
* Test commit.Vassil Vassilev2016-02-261-5/+5
| | | | llvm-svn: 261999
* [clang-tidy] Minor change in the docAlexander Kornienko2016-02-261-1/+1
| | | | llvm-svn: 261998
OpenPOWER on IntegriCloud