aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2015-03-18Merging r230694:llvmorg-3.5.2-rc1llvmorg-3.5.2release/3.5.xTom Stellard1-1/+1
------------------------------------------------------------------------ r230694 | chaoren | 2015-02-26 14:15:16 -0800 (Thu, 26 Feb 2015) | 16 lines Fix Bug 20400 Summary: http://llvm.org/bugs/show_bug.cgi?id=20400 The default triple of i686-pc-linux-gnu for 32 bit linux targets is compatible but not necessarily identical to the inferior binaries. Applying Azat Khuzhin's solution of using ArchSpec::IsCompatibleMatch() instead of ArchSpec::IsExactMatch() when comparing ObjectFile and Modules architecture. Reviewers: vharron Subscribers: lldb-commits Differential Revision: http://reviews.llvm.org/D7897 ------------------------------------------------------------------------ llvm-svn: 232574
2015-03-17Merging r214336:Tom Stellard2-4/+4
------------------------------------------------------------------------ r214336 | rafael.espindola | 2014-07-30 17:04:00 -0400 (Wed, 30 Jul 2014) | 9 lines SimplifyCFG: Avoid miscompilations due to removed lifetime intrinsics. The lifetime intrinsics need some work in order to make it clear which optimizations are or are not valid. For now dropping this optimization avoids a miscompilation. Patch by Björn Steinbrink. ------------------------------------------------------------------------ llvm-svn: 232544
2015-03-17Merging r229352:Tom Stellard3-4/+44
------------------------------------------------------------------------ r229352 | david.majnemer | 2015-02-15 23:02:09 -0500 (Sun, 15 Feb 2015) | 9 lines IR: Properly return nullptr when getAggregateElement is out-of-bounds We didn't properly handle the out-of-bounds case for ConstantAggregateZero and UndefValue. This would manifest as a crash when the constant folder was asked to fold a load of a constant global whose struct type has no operands. This fixes PR22595. ------------------------------------------------------------------------ llvm-svn: 232512
2015-03-16Added MIPS changes to release notes for 3.5.2.Daniel Sanders1-0/+22
llvm-svn: 232369
2015-03-13Try to make AsmPrinter vtable compatible with previous shared library.Daniel Sanders2-6/+6
r232083 added AsmPrinter::emitInlineAsmStart() before AsmPrinter::emitInlineAsmEnd(), changing the vtable in an incompatible way. This patch swaps the declaration order so that the new vtable entry is at the end of the vtable. llvm-svn: 232162
2015-03-12Merging r225521:Daniel Sanders1-0/+6
------------------------------------------------------------------------ r225521 | tomatabacu | 2015-01-09 15:00:30 +0000 (Fri, 09 Jan 2015) | 1 line [mips] Add comment which explains why we need to change the assembler options before and after inline asm blocks. NFC. ------------------------------------------------------------------------ llvm-svn: 232084
2015-03-12Merging r224425:Daniel Sanders9-31/+64
------------------------------------------------------------------------ r224425 | tomatabacu | 2014-12-17 10:56:16 +0000 (Wed, 17 Dec 2014) | 17 lines [mips] Set GCC-compatible MIPS asssembler options before inline asm blocks. Summary: When generating MIPS assembly, LLVM always overrides the default assembler options by emitting the '.set noreorder', '.set nomacro' and '.set noat' directives, while GCC uses the default options if an assembly-level function contains inline assembly code. This becomes a problem when the code generated by LLVM is interleaved with inline assembly which assumes GCC-like assembler options (from Linux, for example). This patch fixes these conflicts by setting the appropriate assembler options at the beginning of an inline asm block and popping them at the end. Reviewers: dsanders Reviewed By: dsanders Subscribers: llvm-commits Differential Revision: http://reviews.llvm.org/D6637 ------------------------------------------------------------------------ llvm-svn: 232083
2015-03-12Merging r217432:Daniel Sanders5-17/+155
------------------------------------------------------------------------ r217432 | tomatabacu | 2014-09-09 11:15:38 +0100 (Tue, 09 Sep 2014) | 12 lines [mips] Add assembler support for .set push/pop directive. Summary: These directives are used to save the current assembler options (in the case of ".set push") and restore the previously saved options (in the case of ".set pop"). Contains work done by Matheus Almeida. Reviewers: dsanders Reviewed By: dsanders Differential Revision: http://reviews.llvm.org/D4821 ------------------------------------------------------------------------ llvm-svn: 232082
2015-03-12Merging r217254:Daniel Sanders1-14/+14
------------------------------------------------------------------------ r217254 | tomatabacu | 2014-09-05 16:43:21 +0100 (Fri, 05 Sep 2014) | 9 lines [mips] Rename data members and member functions in MipsAssemblerOptions. Summary: Use the naming convention from the LLVM Coding Standards. Reviewers: dsanders Reviewed By: dsanders Differential Revision: http://reviews.llvm.org/D4972 ------------------------------------------------------------------------ llvm-svn: 232054
2015-03-06Merging r230235:Daniel Sanders3-5/+151
------------------------------------------------------------------------ r230235 | dsanders | 2015-02-23 17:22:16 +0000 (Mon, 23 Feb 2015) | 16 lines [mips] Honour -mno-odd-spreg for vector insert/extract when MSA is enabled. Summary: -mno-odd-spreg prohibits the use of odd-numbered single-precision floating point registers. However, vector insert/extract was still using them when manipulating the subregisters of an MSA register. Fixed this by ensuring that insertion/extraction is only performed on even-numbered vector registers when -mno-odd-spreg is given. Reviewers: vmedic, sstankovic Reviewed By: sstankovic Subscribers: llvm-commits Differential Revision: http://reviews.llvm.org/D7672 ------------------------------------------------------------------------ llvm-svn: 231472
2015-03-06Merging r227089:Daniel Sanders17-42/+446
------------------------------------------------------------------------ r227089 | vkalintiris | 2015-01-26 12:33:22 +0000 (Mon, 26 Jan 2015) | 15 lines [mips] Enable arithmetic and binary operations for the i128 data type. Summary: This patch adds support for some operations that were missing from 128-bit integer types (add/sub/mul/sdiv/udiv... etc.). With these changes we can support the __int128_t and __uint128_t data types from C/C++. Depends on D7125 Reviewers: dsanders Subscribers: llvm-commits Differential Revision: http://reviews.llvm.org/D7143 ------------------------------------------------------------------------ llvm-svn: 231471
2015-03-06Merging r227087:Daniel Sanders12-0/+1154
Except for the MIPS-II and MIPS-III cases since these targets were not supported in 3.5.1. ------------------------------------------------------------------------ r227087 | vkalintiris | 2015-01-26 12:04:40 +0000 (Mon, 26 Jan 2015) | 7 lines [mips] Add tests for bitwise binary and integer arithmetic operators. Reviewers: dsanders Subscribers: llvm-commits Differential Revision: http://reviews.llvm.org/D7125 ------------------------------------------------------------------------ llvm-svn: 231469
2015-03-06Partially merging r221686:Daniel Sanders1-0/+131
Only the testcase minus the MIPS-II and MIPS-IV cases have been merged. They are required to cleanly apply a subsequent patch. ------------------------------------------------------------------------ r221686 | vkalintiris | 2014-11-11 11:43:55 +0000 (Tue, 11 Nov 2014) | 16 lines [mips] Add preliminary support for the MIPS II target. Summary: This patch enables code generation for the MIPS II target. Pre-Mips32 targets don't have the MUL instruction, so we add the correspondent pattern that uses the MULT/MFLO combination in order to retrieve the product. This is WIP as we don't support code generation for select nodes due to the lack of conditional-move instructions. Reviewers: dsanders Subscribers: llvm-commits Differential Revision: http://reviews.llvm.org/D6150 ------------------------------------------------------------------------ llvm-svn: 231468
2015-03-06Merging r226171:Daniel Sanders2-2/+92
------------------------------------------------------------------------ r226171 | dsanders | 2015-01-15 15:41:03 +0000 (Thu, 15 Jan 2015) | 11 lines [mips] Fix a typo in the compare patterns for MIPS32r6/MIPS64r6. Summary: The patterns intended for the SETLE node were actually matching the SETLT node. Reviewers: atanasyan, sstankovic, vmedic Reviewed By: vmedic Subscribers: llvm-commits Differential Revision: http://reviews.llvm.org/D6997 ------------------------------------------------------------------------ llvm-svn: 231467
2015-03-06Merging r225529:Daniel Sanders5-0/+76
------------------------------------------------------------------------ r225529 | dsanders | 2015-01-09 17:21:30 +0000 (Fri, 09 Jan 2015) | 18 lines [mips] Add support for accessing $gp as a named register. Summary: Mips Linux uses $gp to hold a pointer to thread info structure and accesses it with a named register. This makes this work for LLVM. The N32 ABI doesn't quite work yet since the frontend generates incorrect IR for this case. It neglects to truncate the 64-bit GPR to a 32-bit value before converting to a pointer. Given correct IR (as in the testcase in this patch), it works correctly. Reviewers: sstankovic, vmedic, atanasyan Reviewed By: atanasyan Subscribers: llvm-commits Differential Revision: http://reviews.llvm.org/D6893 ------------------------------------------------------------------------ llvm-svn: 231466
2015-03-06Revert r231463 and r231462.Daniel Sanders9-70/+31
The build fails after merging them due to two missing functions. llvm-svn: 231464
2015-03-06Merging r225521:Daniel Sanders1-0/+6
------------------------------------------------------------------------ r225521 | tomatabacu | 2015-01-09 15:00:30 +0000 (Fri, 09 Jan 2015) | 1 line [mips] Add comment which explains why we need to change the assembler options before and after inline asm blocks. NFC. ------------------------------------------------------------------------ llvm-svn: 231463
2015-03-06Merging r224425:Daniel Sanders9-31/+64
------------------------------------------------------------------------ r224425 | tomatabacu | 2014-12-17 10:56:16 +0000 (Wed, 17 Dec 2014) | 17 lines [mips] Set GCC-compatible MIPS asssembler options before inline asm blocks. Summary: When generating MIPS assembly, LLVM always overrides the default assembler options by emitting the '.set noreorder', '.set nomacro' and '.set noat' directives, while GCC uses the default options if an assembly-level function contains inline assembly code. This becomes a problem when the code generated by LLVM is interleaved with inline assembly which assumes GCC-like assembler options (from Linux, for example). This patch fixes these conflicts by setting the appropriate assembler options at the beginning of an inline asm block and popping them at the end. Reviewers: dsanders Reviewed By: dsanders Subscribers: llvm-commits Differential Revision: http://reviews.llvm.org/D6637 ------------------------------------------------------------------------ llvm-svn: 231462
2015-01-14Bump version to 3.5.2Tom Stellard3-13/+13
llvm-svn: 225916
2015-01-06Merging r222856:David Majnemer2-133/+1
------------------------------------------------------------------------ r222856 | majnemer | 2014-11-26 15:00:38 -0800 (Wed, 26 Nov 2014) | 8 lines Revert "Added inst combine transforms for single bit tests from Chris's note" This reverts commit r210006, it miscompiled libapr which is used in who knows how many projects. A test has been added to ensure that we don't regress again. I'll work on a rewrite of what the optimization was trying to do later. ------------------------------------------------------------------------ llvm-svn: 225255
2014-12-31Creating a 3.5 branch, which is compatible with LLVM 3.5Tom Stellard361-0/+7878
This branch will probably not be mantained. Its purpose is to mark the last commit that is compatible with LLVM 3.5. llvm-svn: 225040
2014-12-31[analyzer] Include a couple more comments on using xcrun to query the SDK.Ted Kremenek1-0/+4
llvm-svn: 225039
2014-12-31[analyzer] Change ccc-analyzer to mimick behavior on OSX Mavericks/Yosemite ↵Ted Kremenek1-0/+20
to automatically infer the SDK location. llvm-svn: 225038
2014-12-31[X86] Update disassembler tests for absolute move instructions to check the ↵Craig Topper1-37/+37
encodings. This provides testing for r225036. 64-bit mode is still broken. llvm-svn: 225037
2014-12-31[X86] Fix disassembly of absolute moves to work correctly in 16 and 32-bit ↵Craig Topper4-20/+53
modes with all 4 combinations of OpSize and AdSize prefixes being present or not. llvm-svn: 225036
2014-12-31[x86] Simplify detection of jcxz/jecxz/jrcxz in disassembler.Craig Topper1-16/+5
llvm-svn: 225035
2014-12-31InstCombine: try to transform A-B < 0 into A < BDavid Majnemer2-0/+56
We are allowed to move the 'B' to the right hand side if we an prove there is no signed overflow and if the comparison itself is signed. llvm-svn: 225034
2014-12-31[llgo] Elide alloca for unused received values in selectAndrew Wilkins3-29/+50
Summary: If a receive case in a select statement is not assigned to a named variable, then we can eliminate the alloca and copy at runtime. Test Plan: lit test added Reviewers: pcc Reviewed By: pcc Subscribers: llvm-commits Differential Revision: http://reviews.llvm.org/D6785 llvm-svn: 225033
2014-12-31Revert "merge consecutive stores of extracted vector elements"Alexey Samsonov2-108/+4
This reverts commit r224611. This change causes crashes in X86 DAG->DAG Instruction Selection. llvm-svn: 225031
2014-12-31irgen: modify the ABI to use init guards instead of priorityPeter Collingbourne4-11/+92
The new ABI is simpler for use cases such as dynamically loaded packages. The calling convention for import functions is similar to what go/ssa would produce if BareInits were cleared. However, simply clearing this flag causes two additional issues: 1) We would need to special case the 'init$guard' variable (see discussion in https://codereview.appspot.com/78780043/). 2) The call to __go_register_gc_roots needs to appear in the right place, i.e. after the guard check. Making this check appear in the right place with non-bare inits seems unreliable at best. So we keep BareInits set and generate the necessary code manually. It is still possible to get the old ABI by specifying a path to a gccgo installation. Differential Revision: http://reviews.llvm.org/D6804 llvm-svn: 225030
2014-12-31irgen: make it possible to use a custom importerPeter Collingbourne1-22/+41
Differential Revision: http://reviews.llvm.org/D6803 llvm-svn: 225029
2014-12-31irgen: return a types.Package to the compiler clientPeter Collingbourne1-1/+2
Differential Revision: http://reviews.llvm.org/D6802 llvm-svn: 225028
2014-12-31irgen: introduce ManglePackagePath functionPeter Collingbourne1-7/+7
This is useful for clients that need to use llgo's mangling of the package path to look up a specific function within a given package. Differential Revision: http://reviews.llvm.org/D6801 llvm-svn: 225027
2014-12-31irgen, driver: modify Compiler.Compile to take a FileSet and FilesPeter Collingbourne4-14/+18
This change allows clients to generate IR using "files" received from locations other than the file system. The regular file parser is moved to a new library, "driver", which is intended to eventually contain much of the logic from the existing driver. Differential Revision: http://reviews.llvm.org/D6794 llvm-svn: 225026
2014-12-31[Hexagon] Adding accumulating add/sub, doubleword logic-not variants, ↵Colin LeMahieu4-0/+135
doubleword bitfield extract, word parity, accumulating multiplies with saturation. llvm-svn: 225024
2014-12-31Update the website with information about LLDB on Windows.Zachary Turner2-4/+154
This patch updates the list of supported platforms to include Windows, and also provides some detailed getting started instructions for building LLDB on Windows. Differential Revision: http://reviews.llvm.org/D6805 llvm-svn: 225023
2014-12-31Fix HTML formatting and non-conformance.Zachary Turner1-224/+277
llvm-svn: 225022
2014-12-31Handle PPC64 return type (signext i32 rather than plain i32) in test caseDavid Blaikie1-1/+1
llvm-svn: 225021
2014-12-30Fix a test case to not depend on asm comment syntax, so as to be portableDavid Blaikie1-9/+9
Too many different comment characters - instead of trying to account for them all, instead disable the comments and just check for end-of-line instead. llvm-svn: 225020
2014-12-30Generalize even further, for ARM comment syntax (@)David Blaikie1-8/+8
llvm-svn: 225019
2014-12-30[Hexagon] Adding double-logic on predicate instructions.Colin LeMahieu2-2/+82
llvm-svn: 225018
2014-12-30Generalize test case to handle different asm syntax (# or // comments)David Blaikie1-8/+8
llvm-svn: 225017
2014-12-30[asan] fix coverage between fork() and exec(): reinitialize the guards after ↵Kostya Serebryany3-13/+37
fork() llvm-svn: 225016
2014-12-30[Hexagon] Adding newvalue compare and jumps.Colin LeMahieu2-17/+169
llvm-svn: 225015
2014-12-30RTDyldMemoryManager.cpp: Make the reference to __morestack weak.Peter Collingbourne1-2/+4
This fixes the DSO build for now. Eventually we should develop some other mechanism to make this work correctly with DSOs. llvm-svn: 225014
2014-12-30Driver: unify compiler-rt component selectionSaleem Abdulrasool1-37/+28
Unify the component handling for compiler-rt. The components are regularly named, built up from: ${LIBRARY_PREFIX}clang_rt.${component}-${arch}[-${environment}]${LIBRARY_SUFFIX} Unify the handling for all the various components, into a single path to link against the various components in a number of places. This reduces duplication of the clang_rt library name construction logic. llvm-svn: 225013
2014-12-30Driver: whitespaceSaleem Abdulrasool1-9/+7
Fixup some whitespace/style issues. NFC. llvm-svn: 225012
2014-12-30DebugInfo: Omit is_stmt from line table entries on the same line.David Blaikie4-4/+87
GCC does this for non-zero discriminators and since GCC doesn't produce column info, that was the only place it comes up there. For LLVM, since we can emit discriminators and/or column info, it makes more sense to invert the condition and just test for changes in line number. This should resolve at least some of the GDB 7.5 test suite failures created by recent Clang changes that increase the location fidelity (which, since Clang defaults to including column info on Linux by default created a bunch of cases that confused GDB). In theory we could do this better/differently by grouping actual source statements together in a similar manner to the way lexical scopes are handled but given that GDB isn't really in a position to consume that (& users are probably somewhat used to different lines being different 'statements') this seems the safest and cheapest change. (I'm concerned that doing this 'right' would bloat the debugloc data even further - something Duncan's working hard to address) llvm-svn: 225011
2014-12-30[Hexagon] Adding postincrement register newvalue stores.Colin LeMahieu2-0/+39
llvm-svn: 225010
2014-12-30[Hexagon] Removing old newvalue store variants. Adding postincrement ↵Colin LeMahieu3-96/+141
immediate newvalue stores. llvm-svn: 225009