summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Move SymbolSize from MCSymbolData to MCSymbol.Rafael Espindola2015-05-293-13/+12
| | | | llvm-svn: 238580
* Fix crash in MCExpr::print.Pete Cooper2015-05-291-1/+1
| | | | | | | | | | | | Symbols are no longer required to be named, but this leads to a crash here if an unnamed symbol checks that its first character is '$'. Change the code to first check for a name, then check its first character. No test case i'm afraid as this is debugging code, but any test case with temp labels and 'llc --debug --filetype=obj' would have crashed. llvm-svn: 238579
* Add support for VSX FMA single-precision instructions to the PPC back endNemanja Ivanovic2015-05-296-9/+392
| | | | | | | | | | | This patch corresponds to review: http://reviews.llvm.org/D9941 It adds the various FMA instructions introduced in the version 2.07 of the ISA along with the testing for them. These are operations on single precision scalar values in VSX registers. llvm-svn: 238578
* Exploit non-negative numeratorsTobias Grosser2015-05-293-7/+128
| | | | | | | | | isl marks known non-negative numerators in modulo (and soon also division) operations. We now exploit this by generating unsigned operations. This is beneficial as unsigned operations with power-of-two denominators will be translated by isl to fast bitshift or bitwise and operations. llvm-svn: 238577
* MIR Serialization: use correct line and column numbers for LLVM IR errors.Alex Lorenz2015-05-292-1/+62
| | | | | | | | | | | | | This commit translates the line and column numbers for LLVM IR errors from the numbers in the YAML block scalar to the numbers in the MIR file so that the MIRParser users can report LLVM IR errors with the correct line and column numbers. Reviewers: Duncan P. N. Exon Smith Differential Revision: http://reviews.llvm.org/D10108 llvm-svn: 238576
* [WinEH] Emit EH tables for __CxxFrameHandler3 on 32-bit x86Reid Kleckner2015-05-298-140/+212
| | | | | | | | | | | | | Small (really small!) C++ exception handling examples work on 32-bit x86 now. This change disables the use of .seh_* directives in WinException when CFI is not in use. It also uses absolute symbol references in the tables instead of imagerel32 relocations. Also fixes a cache invalidation bug in MMI personality classification. llvm-svn: 238575
* [NVPTXFavorNonGenericAddrSpaces] recursively trace into GEP and BitCastJingyue Wu2015-05-292-60/+163
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Summary: This patch allows NVPTXFavorNonGenericAddrSpaces to remove addrspacecast from longer chains consisting of GEPs and BitCasts. For example, it can now optimize %0 = addrspacecast [10 x float] addrspace(3)* @a to [10 x float]* %1 = gep [10 x float]* %0, i64 0, i64 %i %2 = bitcast float* %1 to i32* %3 = load i32* %2 ; emits ld.u32 to %0 = gep [10 x float] addrspace(3)* @a, i64 0, i64 %i %1 = bitcast float addrspace(3)* %0 to i32 addrspace(3)* %3 = load i32 addrspace(3)* %1 ; emits ld.shared.f32 Test Plan: @ld_int_from_global_float in access-non-generic.ll Reviewers: broune, eliben, jholewinski, meheff Subscribers: jholewinski, llvm-commits Differential Revision: http://reviews.llvm.org/D10074 llvm-svn: 238574
* [DependenceAnalysis] Extend unifySubscriptType for handling coupled ↵Jingyue Wu2015-05-293-21/+128
| | | | | | | | | | | | | | | | | | | | | | | subscript groups. Summary: In continuation to an earlier commit to DependenceAnalysis.cpp by jingyue (r222100), the type for all subscripts in a coupled group need to be the same since constraints from one subscript may be propagated to another during testing. During testing, new SCEVs may be created and the operands for these need to be the same. This patch extends unifySubscriptType() to work on lists of subscript pairs, ensuring a common extended type for all of them. Test Plan: Added a test case to NonCanonicalizedSubscript.ll which causes dependence analysis to crash without this fix. All regression tests pass. Reviewers: spop, sebpop, jingyue Reviewed By: jingyue Subscribers: llvm-commits Differential Revision: http://reviews.llvm.org/D9698 llvm-svn: 238573
* Improve handling of print value argument in -stack-list-* commands.Hafiz Abid Qadeer2015-05-292-22/+28
| | | | | | | It was reviewed in http://reviews.llvm.org/D10106. Patch by paulmaybee. llvm-svn: 238572
* COFF: Add /subsystem option.Rui Ueyama2015-05-296-3/+77
| | | | llvm-svn: 238571
* COFF: Add /version option.Rui Ueyama2015-05-296-0/+49
| | | | llvm-svn: 238570
* COFF: Add /heap option.Rui Ueyama2015-05-294-2/+32
| | | | llvm-svn: 238569
* Add /stack option.Rui Ueyama2015-05-294-3/+34
| | | | llvm-svn: 238568
* COFF: Add /base option.Rui Ueyama2015-05-294-0/+33
| | | | llvm-svn: 238567
* Allow CMAKE_OSX_ARCHITECTURES to build fat library.Jonathan Peyton2015-05-295-164/+157
| | | | | | | | | | | | | The CMAKE_OSX_ARCHITECTURES CMake variable allows users to build universal fat libraries that contain both i386 and x86_64 code. These changes allow this build by having the z_Linux_asm.s file detect the architecture itself instead of receiving it through the build system. Also, there was a LIBOMP_OSX_ARCHITECTURES CMake variable added to allow people to only build libomp as a fat library and not the entire LLVM/Clang system. http://lists.cs.uiuc.edu/pipermail/openmp-dev/2015-May/000626.html llvm-svn: 238566
* COFF: Add /help option.Rui Ueyama2015-05-294-0/+16
| | | | llvm-svn: 238565
* COFF: Add /machine option.Rui Ueyama2015-05-296-1/+71
| | | | llvm-svn: 238564
* COFF: Move Windows-specific function under Windows-specific marker.Rui Ueyama2015-05-291-29/+29
| | | | llvm-svn: 238563
* COFF: Fill imort table HintName field.Rui Ueyama2015-05-295-9/+15
| | | | | | | | | Currently we set the field to zero, but as per the spec, we should set numbers we read from import library files. The loader uses the values as starting offsets for binary search when looking up imported symbols from DLL. llvm-svn: 238562
* libcxx: Switch to use __gnu_unwind_frame() for libunwind.Logan Chien2015-05-291-32/+2
| | | | | | | | | As a step to fix libunwind unw_step(), a new function __gnu_unwind_frame() has been introduced to libunwind, and it is required to use this function so that some libunwind internal data structure can be updated properly. llvm-svn: 238561
* libunwind: Fix unw_step() for ARM EHABI.Logan Chien2015-05-295-73/+174
| | | | | | | | | | | | | | | | | | | This commit fixes the unw_step() for ARM EHABI. However, this commit also changes the implementation details for ARM EHABI. The first change is that the personality function should call __gnu_unwind_frame() for default (or de facto) frame unwinding based on the ARM-defined unwind opcode. The function __gnu_unwind_frame() will in turn calls unw_step() which actually unwinds the frame. The second change is that the implementation _Unwind_Backtrace() should no longer calls unw_step() to unwind the frame; since according to ARM EHABI, the personality function should unwind the frame for us. Special thanks to Anton for helpful suggestion on the initial version of this patch. llvm-svn: 238560
* Simplify now that symbols contain the correct section.Rafael Espindola2015-05-291-9/+4
| | | | | | | The complexity in here was because before r233995 variable symbols would report the incorrect section. llvm-svn: 238559
* XFAIL two tests for androidPavel Labath2015-05-293-0/+8
| | | | | | bug #23694 llvm-svn: 238558
* [Objdump] Removing unused parameter.Colin LeMahieu2015-05-291-2/+2
| | | | llvm-svn: 238557
* [Hexagon] Disassembling, printing, and emitting instructions a whole-bundle ↵Colin LeMahieu2015-05-2923-179/+503
| | | | | | at a time which is the semantic unit for Hexagon. Fixing tests to use the new format. Disabling tests in the direct object emission path for a followup patch. llvm-svn: 238556
* Fix ELFObjectWriter::isLocal for signature symbols.Rafael Espindola2015-05-291-8/+8
| | | | | | | | | And with that simplify the logic for inserting them in ExternalSymbolData or LocalSymbolData. No functionality change overall since the old code avoided the isLocal bug. llvm-svn: 238555
* [mips] Remove 2 unused variables in MipsTargetStreamer.cpp. NFC.Toma Tabacu2015-05-291-2/+0
| | | | llvm-svn: 238554
* [ARM] Adjust -march checkingJohn Brawn2015-05-292-4/+9
| | | | | | | | | | getCanonicalArchName can return an empty string for an architecture that is well-formed but meaningless. Use parseArch to determine if it's actually valid or not. Differential Revision: http://reviews.llvm.org/D10120 llvm-svn: 238553
* Removing a switch statement that only contains a default; NFC.Aaron Ballman2015-05-291-4/+1
| | | | llvm-svn: 238552
* [NativeProcessLinux] clean up #includesPavel Labath2015-05-292-12/+4
| | | | llvm-svn: 238551
* Fix assertion on C++ attributes in fillAttributedTypeLocAlexander Musman2015-05-292-8/+33
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | this fixes http://llvm.org/PR17424 fillAttributedTypeLoc() function is only called with AttributeLists of either DeclarationChunk (which is used for each type in a declarator being parsed) or DeclSpec (which captures information about declaration specifiers). As C++11 attributes actually appertain to declarators, they are moved straight to the declarator’s attr list in distributeFunctionTypeAttrFromDeclSpec() function. 'Put them wherever you like' semantics is not supported for C++11 attributes (but is allowed for GNU attributes, for example). So when we meet an attribute while parsing the declaration, we cannot be sure if it appertains to either DeclarationChunk or DeclSpec. This investigation correlates with the history of changes of SemaType.cpp: • Asserts in fillAttributedTypeLoc() were added on 3 Mar 2011 in r126986 (http://lists.cs.uiuc.edu/pipermail/cfe-commits/Week-of-Mon- 20110228/039638.html); • Distributing C++11 attrs to the declarator was added on 14 Jan 2013 in r172504 (http://lists.cs.uiuc.edu/pipermail/cfe-commits/Week-of-Mon- 20130114/071830.html). Considering all written above I changed asserts in fillAttributedTypeLoc() to nullptr checks. This fixes PR17424 and related assertion on [[gnu::fastcall]] void __stdcall foo(); Author: Alexey Frolov Differential Revision: http://reviews.llvm.org/D9288 llvm-svn: 238550
* Report inferior SIGSEGV as a signal instead of an exception on linuxPavel Labath2015-05-2915-134/+251
| | | | | | | | | | | | | | | | | | | | | | | | | | | Summary: Previously, we reported inferior receiving SIGSEGV (or SIGILL, SIGFPE, SIGBUS) as an "exception" to LLDB, presumably to match OSX behaviour. Beside the fact that we were basically lying to the user, this was also causing problems with inferiors which handle SIGSEGV by themselves, since LLDB was unable to reinject this signal back into the inferior. This commit changes LLGS to report SIGSEGV as a signal. This has necessitated some changes in the test-suite, which had previously used eStopReasonException to locate threads that crashed. Now it uses platform-specific logic, which in the case of linux searches for eStopReasonSignaled with signal=SIGSEGV. I have also added the ability to set the description of StopInfoUnixSignal using the description field of the gdb-remote packet. The linux stub uses this to display additional information about the segfault (invalid address, address access protected, etc.). Test Plan: All tests pass on linux and osx. Reviewers: ovyalov, clayborg, emaste Subscribers: emaste, lldb-commits Differential Revision: http://reviews.llvm.org/D10057 llvm-svn: 238549
* [clang-tidy] Fix for llvm.org/PR23355Szabolcs Sipos2015-05-294-7/+31
| | | | | | misc-static-assert and misc-assert-side-effect will handle __builtin_expect based asserts correctly. llvm-svn: 238548
* Refactor MacroInfo so macro arguments can be iterated with range-based for ↵Daniel Marjamaki2015-05-293-9/+7
| | | | | | | | | | loops. No functional change intended. Patch by Sebastian Edman! llvm-svn: 238547
* Run clang-format on MacroInfo.hDaniel Marjamaki2015-05-291-53/+38
| | | | llvm-svn: 238546
* [ASan] Fix flaky tests (see https://llvm.org/bugs/show_bug.cgi?id=23230).Yury Gribov2015-05-292-12/+22
| | | | | | | | Patch by Maria Guseva! Differential Revision: http://reviews.llvm.org/D10063 llvm-svn: 238545
* clang-format: [JS] Support ES6 computed property names.Daniel Jasper2015-05-293-0/+9
| | | | | | | | | | | | | | | | Before: var x = { [a]: 1, b: 2 }; After: var x = { [a]: 1, b: 2 }; llvm-svn: 238544
* [TableGen] Remove convertValue functions for UnOpInit, BinOpInit, and ↵Craig Topper2015-05-292-61/+0
| | | | | | | | TernOpInit as they weren't able to be called. I don't think converting the inputs to the Ops was the right behavior anyway. llvm-svn: 238543
* NFC: tab => spacesJingyue Wu2015-05-291-8/+8
| | | | llvm-svn: 238542
* Change ProcessEventData over to use a std::weak_ptr to a process intead of a ↵Greg Clayton2015-05-292-13/+25
| | | | | | std::shared_ptr. Anyone consuming events for a process should have the process around long enough to grab the event and anyone that holds onto an event for too long won't keep the process around. llvm-svn: 238541
* This should have been a referenceMatthias Braun2015-05-291-1/+1
| | | | llvm-svn: 238540
* CodeGen: Use mop_iterator instead of MIOperands/ConstMIOperandsMatthias Braun2015-05-2913-91/+104
| | | | | | | | | | | | | | | | | | | | | | | | MIOperands/ConstMIOperands are classes iterating over the MachineOperand of a MachineInstr, however MachineInstr::mop_iterator does the same thing. I assume these two iterators exist to have a uniform interface to iterate over the operands of a machine instruction bundle and a single machine instruction. However in practice I find it more confusing to have 2 different iterator classes, so this patch transforms (nearly all) the code to use mop_iterators. The only exception being MIOperands::anlayzePhysReg() and MIOperands::analyzeVirtReg() still needing an equivalent, I leave that as an exercise for the next patch. Differential Revision: http://reviews.llvm.org/D9932 This version is slightly modified from the proposed revision in that it introduces MachineInstr::getOperandNo to avoid the extra counting variable in the few loops that previously used MIOperands::getOperandNo. llvm-svn: 238539
* wip: Remove some unused functionsJustin Bogner2015-05-292-39/+0
| | | | llvm-svn: 238538
* Add a test for the MachineCopyPropagation change landed in r238518.Quentin Colombet2015-05-291-0/+55
| | | | llvm-svn: 238537
* [TableGen][AsmMatcherEmitter] Only parse isolated tokens as registers.Ahmed Bougacha2015-05-292-4/+25
| | | | | | | | | | | | | | Fixes PR23455, where, when TableGen generates the matcher from the AsmString, it splits "cmp${cc}ss" into tokens, and the "ss" suffix is recognized as the SS register. I can't think of a situation where that's a feature, not a bug, hence: when a token is "isolated", i.e., it is followed and preceded by separators, it shouldn't be parsed as a register. Differential Revision: http://reviews.llvm.org/D9844 llvm-svn: 238536
* Add '+' sign at the end of echo packageYing Chen2015-05-291-1/+1
| | | | | | | | | | | | | | | | | | Summary: -Fix lldb test failures introduced by r238530 -This fix TestGdbRemoteAuxvSupport.py and TestLldbGdbServer.py Test Plan: ./dotest -p TestGdbRemoteAuxvSupport.py ./dotest -p TestLldbGdbServer.py Reviewers: clayborg, chaoren, vharron Subscribers: lldb-commits Differential Revision: http://reviews.llvm.org/D10116 llvm-svn: 238535
* [TableGen][AsmMatcherEmitter] Factor out AsmOperand creation. NFC.Ahmed Bougacha2015-05-291-8/+15
| | | | llvm-svn: 238534
* Add support for the qEcho command to lldb-server in the common packets.Greg Clayton2015-05-294-0/+18
| | | | llvm-svn: 238533
* [TestLldbGdbServer and TestGdbRemoteXXX] Use "ls -l" instead of "readlink"Siva Chandra2015-05-291-12/+17
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Summary: Old Android devices, for example API 16, do not have the "readlink" command. To take care of such devices, this commit changes to use "ls -l" instead of "readlink" to get the lldb-server exe path. The tests fixed with this change for an Android API 16 arm device are: TestGdbRemoteAttach TestGdbRemoteAuxvSupport TestGdbRemoteExpeditedRegisters TestGdbRemoteKill TestGdbRemoteProcessInfo TestGdbRemoteSegFault TestGdbRemoteThreadsInStopReply TestGdbRemote_qThreadStopInfo Further, all tests in TestLldbGdbServer pass (previously erroring out), except one which times out. Test Plan: Run dosep.py with 8 test threads targetting Android API 16 device. Reviewers: vharron, ovyalov Reviewed By: ovyalov Subscribers: tberghammer, aemerson, lldb-commits Differential Revision: http://reviews.llvm.org/D10107 llvm-svn: 238532
* [IR] fptrunc-of-fptrunc isn't an EliminableCastPair.Ahmed Bougacha2015-05-292-1/+9
| | | | | | | Double and single rounding can produce different results. This is the IR counterpart to r228911. llvm-svn: 238531
OpenPOWER on IntegriCloud