summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
...
* [X86] Update disassembler tests for absolute move instructions to check the ↵Craig Topper2014-12-311-37/+37
| | | | | | encodings. This provides testing for r225036. 64-bit mode is still broken. llvm-svn: 225037
* [X86] Fix disassembly of absolute moves to work correctly in 16 and 32-bit ↵Craig Topper2014-12-314-20/+53
| | | | | | modes with all 4 combinations of OpSize and AdSize prefixes being present or not. llvm-svn: 225036
* [x86] Simplify detection of jcxz/jecxz/jrcxz in disassembler.Craig Topper2014-12-311-16/+5
| | | | llvm-svn: 225035
* InstCombine: try to transform A-B < 0 into A < BDavid Majnemer2014-12-312-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
* [llgo] Elide alloca for unused received values in selectAndrew Wilkins2014-12-313-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
* Revert "merge consecutive stores of extracted vector elements"Alexey Samsonov2014-12-312-108/+4
| | | | | | | This reverts commit r224611. This change causes crashes in X86 DAG->DAG Instruction Selection. llvm-svn: 225031
* irgen: modify the ABI to use init guards instead of priorityPeter Collingbourne2014-12-314-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
* irgen: make it possible to use a custom importerPeter Collingbourne2014-12-311-22/+41
| | | | | | Differential Revision: http://reviews.llvm.org/D6803 llvm-svn: 225029
* irgen: return a types.Package to the compiler clientPeter Collingbourne2014-12-311-1/+2
| | | | | | Differential Revision: http://reviews.llvm.org/D6802 llvm-svn: 225028
* irgen: introduce ManglePackagePath functionPeter Collingbourne2014-12-311-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
* irgen, driver: modify Compiler.Compile to take a FileSet and FilesPeter Collingbourne2014-12-314-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
* [Hexagon] Adding accumulating add/sub, doubleword logic-not variants, ↵Colin LeMahieu2014-12-314-0/+135
| | | | | | doubleword bitfield extract, word parity, accumulating multiplies with saturation. llvm-svn: 225024
* Update the website with information about LLDB on Windows.Zachary Turner2014-12-312-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
* Fix HTML formatting and non-conformance.Zachary Turner2014-12-311-224/+277
| | | | llvm-svn: 225022
* Handle PPC64 return type (signext i32 rather than plain i32) in test caseDavid Blaikie2014-12-311-1/+1
| | | | llvm-svn: 225021
* Fix a test case to not depend on asm comment syntax, so as to be portableDavid Blaikie2014-12-301-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
* Generalize even further, for ARM comment syntax (@)David Blaikie2014-12-301-8/+8
| | | | llvm-svn: 225019
* [Hexagon] Adding double-logic on predicate instructions.Colin LeMahieu2014-12-302-2/+82
| | | | llvm-svn: 225018
* Generalize test case to handle different asm syntax (# or // comments)David Blaikie2014-12-301-8/+8
| | | | llvm-svn: 225017
* [asan] fix coverage between fork() and exec(): reinitialize the guards after ↵Kostya Serebryany2014-12-303-13/+37
| | | | | | fork() llvm-svn: 225016
* [Hexagon] Adding newvalue compare and jumps.Colin LeMahieu2014-12-302-17/+169
| | | | llvm-svn: 225015
* RTDyldMemoryManager.cpp: Make the reference to __morestack weak.Peter Collingbourne2014-12-301-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
* Driver: unify compiler-rt component selectionSaleem Abdulrasool2014-12-301-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
* Driver: whitespaceSaleem Abdulrasool2014-12-301-9/+7
| | | | | | Fixup some whitespace/style issues. NFC. llvm-svn: 225012
* DebugInfo: Omit is_stmt from line table entries on the same line.David Blaikie2014-12-304-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
* [Hexagon] Adding postincrement register newvalue stores.Colin LeMahieu2014-12-302-0/+39
| | | | llvm-svn: 225010
* [Hexagon] Removing old newvalue store variants. Adding postincrement ↵Colin LeMahieu2014-12-303-96/+141
| | | | | | immediate newvalue stores. llvm-svn: 225009
* [mips][microMIPS] Relocate with symbol for micromips symbolsZoran Jovanovic2014-12-302-1/+21
| | | | | | Differential Revision: http://reviews.llvm.org/D6796 llvm-svn: 225008
* [Hexagon] Adding indexed store new-value variants.Colin LeMahieu2014-12-303-45/+151
| | | | llvm-svn: 225007
* [Hexagon] Adding indexed store of immediates.Colin LeMahieu2014-12-303-48/+133
| | | | llvm-svn: 225006
* [Hexagon] Adding indexed stores.Colin LeMahieu2014-12-304-81/+282
| | | | llvm-svn: 225005
* Remove a comment that appears a second time 22 lines further down.Nico Weber2014-12-301-3/+0
| | | | llvm-svn: 225004
* x86_64: Fix calls to __morestack under the large code model.Peter Collingbourne2014-12-305-7/+78
| | | | | | | | | | | | | | | | | | | | Under the large code model, we cannot assume that __morestack lives within 2^31 bytes of the call site, so we cannot use pc-relative addressing. We cannot perform the call via a temporary register, as the rax register may be used to store the static chain, and all other suitable registers may be either callee-save or used for parameter passing. We cannot use the stack at this point either because __morestack manipulates the stack directly. To avoid these issues, perform an indirect call via a read-only memory location containing the address. This solution is not perfect, as it assumes that the .rodata section is laid out within 2^31 bytes of each function body, but this seems to be sufficient for JIT. Differential Revision: http://reviews.llvm.org/D6787 llvm-svn: 225003
* [asan] add flag coverage_pcs. When false, the coverage is not dumped as PCs. ↵Kostya Serebryany2014-12-304-0/+8
| | | | | | Useful e.g. if the user only needs coverage is bitset llvm-svn: 225002
* Reapply debug info changes now that more precise column information is ↵David Blaikie2014-12-302-2/+2
| | | | | | | | | available. (recommitting as the Clang patch is back in with the latest fix - hopefully it sticks) llvm-svn: 225001
* Reapply "DebugInfo: Generalize debug info location handling"David Blaikie2014-12-3018-195/+124
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Originally committed in r224385 and reverted in r224441 due to concerns this change might've introduced a crash. Turns out this change fixes the crash introduced by one of my earlier more specific location handling changes (those specific fixes are reverted by this patch, in favor of the more general solution). Recommitted in r224941 and reverted in r224970 after it caused a crash when building compiler-rt. Looks to be due to this change zeroing out the debug location when emitting default arguments (which were meant to inherit their outer expression's location) thus creating call instructions without locations - these create problems for inlining and must not be created. That is fixed and tested in this version of the change. Original commit message: This is a more scalable (fixed in mostly one place, rather than many places that will need constant improvement/maintenance) solution to several commits I've made recently to increase source fidelity for subexpressions. This resetting had to be done at the DebugLoc level (not the SourceLocation level) to preserve scoping information (if the resetting was done with CGDebugInfo::EmitLocation, it would've caused the tail end of an expression's codegen to end up in a potentially different scope than the start, even though it was at the same source location). The drawback to this is that it might leave CGDebugInfo out of sync. Ideally CGDebugInfo shouldn't have a duplicate sense of the current SourceLocation, but for now it seems it does... - I don't think I'm going to tackle removing that just now. I expect this'll probably cause some more buildbot fallout & I'll investigate that as it comes up. Also these sort of improvements might be starting to show a weakness/bug in LLVM's line table handling: we don't correctly emit is_stmt for statements, we just put it on every line table entry. This means one statement split over multiple lines appears as multiple 'statements' and two statements on one line (without column info) are treated as one statement. I don't think we have any IR representation of statements that would help us distinguish these cases and identify the beginning of each statement - so that might be something we need to add (possibly to the lexical scope chain - a scope for each statement). This does cause some problems for GDB and possibly other DWARF consumers. llvm-svn: 225000
* [asan] change _sanitizer_cov_module_init to accept int* instead of int**Kostya Serebryany2014-12-303-27/+46
| | | | llvm-svn: 224999
* [COFF] Don't try to add quotes to already quoted linker directivesMichael Kuperstein2014-12-302-2/+3
| | | | | | | | | | If a linker directive is already quoted, don't try to quote it again, otherwise it creates a mess. This pops up in places like: #pragma comment(linker,"\"/foo bar'\"") Differential Revision: http://reviews.llvm.org/D6792 llvm-svn: 224998
* [Hexagon] Adding reg-reg indexed load forms.Colin LeMahieu2014-12-306-94/+216
| | | | llvm-svn: 224997
* Driver: use the canonical library prefix on WindowsSaleem Abdulrasool2014-12-302-6/+7
| | | | | | | | Unlike Unices, Windows does not use a library prefix. Use the traditional naming scheme even for Windows itanium environments. This makes the builtins behave more like the sanitisers as well. llvm-svn: 224996
* Add non-const version getFileSystemOpts() access function.Yaron Keren2014-12-301-0/+3
| | | | | | All the other get*Opts have both versions. llvm-svn: 224995
* The __morestack function is only available on i386 and x86_64 architectures.Peter Collingbourne2014-12-301-1/+4
| | | | llvm-svn: 224994
* Make the __morestack function available to the JIT memory manager under Linux.Peter Collingbourne2014-12-301-0/+7
| | | | | | | | | This function's implementation lives in libgcc, a static library, so we need to expose it explicitly, like the other such functions. Differential Revision: http://reviews.llvm.org/D6788 llvm-svn: 224993
* [Hexagon] Dropping old combine instructions without encodings.Colin LeMahieu2014-12-303-79/+68
| | | | llvm-svn: 224992
* [Hexagon] Adding compare byte/halfword reg-reg/reg-imm forms. Adding ↵Colin LeMahieu2014-12-303-55/+149
| | | | | | compare to general register reg-imm form. llvm-svn: 224991
* Cleanup lldb-mi test cases.Hafiz Abid Qadeer2014-12-306-79/+0
| | | | | | | | | | | Following changes were done. 1. Remove the extra line after -exec-run. 2. Remove check for prompt. 3. Remove 'quit' command. Initial patch was contributed by ki.stfu@gmail.com. llvm-svn: 224990
* [Hexagon] Updating constant extender def, adding alu-not instructions, ↵Colin LeMahieu2014-12-304-14/+60
| | | | | | compare to general register, and inverted compares. llvm-svn: 224989
* Follow-up to r224987: fix a lint warningTimur Iskhodzhanov2014-12-301-1/+1
| | | | llvm-svn: 224988
* [ASan/Win] Sort the list of modules when we fail to reserve the shadow ↵Timur Iskhodzhanov2014-12-301-20/+53
| | | | | | memory range llvm-svn: 224987
* Some code improvements in Masked Load/Store. Elena Demikhovsky2014-12-303-36/+46
| | | | | | No functional changes. llvm-svn: 224986
OpenPOWER on IntegriCloud