summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* MIRParser: Split the 'parseIRConstant' method into two methods. NFC.Alex Lorenz2015-08-211-3/+12
| | | | | | | One variant of this method can be reused when parsing the quoted IR pointer expressions in the machine memory operands. llvm-svn: 245743
* [opaque pointer types] Push the passing of value types up from ↵David Blaikie2015-08-213-7/+12
| | | | | | | | | Function/GlobalVariable to GlobalObject (coming next, pushing this up into GlobalValue, so it can store the value type directly) llvm-svn: 245742
* [PowerPC] PPCVSXFMAMutate should not segfault on undef input registersHal Finkel2015-08-212-0/+38
| | | | | | | | | | When PPCVSXFMAMutate would look at the input addend register, it would get its input value number. This would fail, however, if the register was undef, causing a segfault. Don't segfault (just skip such FMA instructions). Fixes the test case from PR24542 (although that may have been over-reduced). llvm-svn: 245741
* AsmParser: Save and restore the parsing state for types using SlotMapping.Alex Lorenz2015-08-216-7/+77
| | | | | | | | | | | | | | | | | | | | | This commit extends the 'SlotMapping' structure and includes mappings for named and numbered types in it. The LLParser is extended accordingly to fill out those mappings at the end of module parsing. This information is useful when we want to parse standalone constant values at a later stage using the 'parseConstantValue' method. The constant values can be constant expressions, which can contain references to types. In order to parse such constant values, we have to restore the internal named and numbered mappings for the types in LLParser, otherwise the parser will report a parsing error. Therefore, this commit also introduces a new method called 'restoreParsingState' to LLParser, which uses the slot mappings to restore some of its internal parsing state. This commit is required to serialize constant value pointers in the machine memory operands for the MIR format. Reviewers: Duncan P. N. Exon Smith llvm-svn: 245740
* [LVI] Use a SmallVector instead of SmallPtrSet. NFCBruno Cardoso Lopes2015-08-211-2/+2
| | | | llvm-svn: 245739
* MIRLangRef: Describe the syntax for the immediate operands, register values,Alex Lorenz2015-08-211-6/+133
| | | | | | register operands and register flags. llvm-svn: 245738
* MIR Serialization: Print MCSymbol operands.Alex Lorenz2015-08-212-4/+5
| | | | | | | | This commit allows the MIR printer to print the MCSymbol machine operands. Unfortunately they can't be parsed at this time. I will create a bug that will track the fact that the MCSymbol operands can't be parsed yet. llvm-svn: 245737
* Line endings fix.Simon Pilgrim2015-08-211-1274/+1274
| | | | llvm-svn: 245736
* [x86] enable machine combiner reassociations for 256-bit vector min/maxSanjay Patel2015-08-212-0/+72
| | | | llvm-svn: 245735
* [Sanitizers] Unify the semantics and usage of "exitcode" runtime flag across ↵Alexey Samsonov2015-08-2124-64/+29
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | all sanitizers. Summary: Merge "exitcode" flag from ASan, LSan, TSan and "exit_code" from MSan into one entity. Additionally, make sure sanitizer_common now uses the value of common_flags()->exitcode when dying on error, so that this flag will automatically work for other sanitizers (UBSan and DFSan) as well. User-visible changes: * "exit_code" MSan runtime flag is now deprecated. If explicitly specified, this flag will take precedence over "exitcode". The users are encouraged to migrate to the new version. * __asan_set_error_exit_code() and __msan_set_exit_code() functions are removed. With few exceptions, we don't support changing runtime flags during program execution - we can't make them thread-safe. The users should use __sanitizer_set_death_callback() that would call _exit() with proper exit code instead. * Plugin tools (LSan and UBSan) now inherit the exit code of the parent tool. In particular, this means that ASan would now crash the program with exit code "1" instead of "23" if it detects leaks. Reviewers: kcc, eugenis Subscribers: llvm-commits Differential Revision: http://reviews.llvm.org/D12120 llvm-svn: 245734
* remove 'FeatureSlowUAMem' from AMD CPUs based on 10H micro-arch or laterSanjay Patel2015-08-212-18/+14
| | | | | | | See discussion in D12154 ( http://reviews.llvm.org/D12154 ), AMD Software Optimization Guides for 10H/12H/15H/16H, and Agner Fog's experimental data. llvm-svn: 245733
* [llvm-readobj] Add support for MachO DataInCodeDataCommand.Davide Italiano2015-08-213-0/+36
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Example output: File: <stdin> Format: Mach-O arm Arch: arm AddressSize: 32bit DataInCode { Data offset: 300 Data size: 32 Data Regions [ DICE { Index: 0 Offset: 0 Length: 4 Kind: 1 } DICE { Index: 1 Offset: 4 Length: 4 Kind: 4 } DICE { Index: 2 Offset: 8 Length: 2 Kind: 3 } DICE { Index: 3 Offset: 10 Length: 1 Kind: 2 } ] } Differential Revision: http://reviews.llvm.org/D12084 llvm-svn: 245732
* [SemaObjC] Remove unused code from test.Alex Denisov2015-08-211-42/+6
| | | | | | Patch by modocache (Brian Gesiak). llvm-svn: 245731
* Add comment as follow up to r245712David Blaikie2015-08-211-0/+1
| | | | llvm-svn: 245730
* [x86] invert logic for attribute 'FeatureFastUAMem'Sanjay Patel2015-08-215-89/+98
| | | | | | | | | | | | | | | | This is a 'no functional change intended' patch. It removes one FIXME, but adds several more. Motivation: the FeatureFastUAMem attribute may be too general. It is used to determine if any sized misaligned memory access under 32-bytes is 'fast'. From the added FIXME comments, however, you can see that we're not consistent about this. Changing the name of the attribute makes it clearer to see the logic holes. Changing this to a 'slow' attribute also means we don't have to add an explicit 'fast' attribute to new chips; fast unaligned accesses have been standard for several generations of CPUs now. Differential Revision: http://reviews.llvm.org/D12154 llvm-svn: 245729
* [opaque pointer type]: Pass explicit pointee type when building a constant GEP.David Blaikie2015-08-213-8/+17
| | | | | | | | | | Gets a bit tricky in the ValueMapper, of course - not sure if we should just expose a list of explicit types for each Value so that the ValueMapper can be neutral to these special cases (it's OK for things like load, where the explicit type is the result type - but when that's not the case, it means plumbing through another "special" type... ) llvm-svn: 245728
* Revert "Generating assumption loads of vptr after ctor call (fixed)"Piotr Padlewski2015-08-2113-426/+129
| | | | | | | | Reverting because of 245721 This reverts commit 552658e2b60543c928030b09cc9b5dfcb40c3f28. llvm-svn: 245727
* Implement basic DidAttach and DidLaunch for DynamicLoaderWindowsDYLD.Stephane Sezer2015-08-211-0/+28
| | | | | | | | | | | | | | | | | | | | Summary: This commit implements basic DidAttach and DidLaunch for the windows DynamicLoader plugin which allow us to load shared libraries from the inferior. At the moment, I'm unsure how we're going to gather the load address of the main module over gdb protocol so I always use an offset of 0, which works well for processes we create ourselves (no randomization). I will address this point later on. Reviewers: clayborg, zturner Subscribers: lldb-commits Differential Revision: http://reviews.llvm.org/D12245 llvm-svn: 245725
* Fix 'unused variable' warning in NASSERTS buildTobias Grosser2015-08-211-3/+3
| | | | llvm-svn: 245723
* llvm-lto: Re-order code.Peter Collingbourne2015-08-211-12/+10
| | | | | | | This saves us from needing to asave a pointer, and will be needed for an upcoming ownership change. llvm-svn: 245722
* Generating assumption loads of vptr after ctor call (fixed)Piotr Padlewski2015-08-2113-129/+426
| | | | | | | | | | | | | | | Generating call assume(icmp %vtable, %global_vtable) after constructor call for devirtualization purposes. For more info go to: http://lists.llvm.org/pipermail/cfe-dev/2015-July/044227.html Edit: Fixed version because of PR24479. http://reviews.llvm.org/D11859 llvm-svn: 245721
* tsan: don't report any bugs when report_bugs=0 flag is setDmitry Vyukov2015-08-211-0/+2
| | | | llvm-svn: 245720
* Properly provide alignment of 'byval' arguments down to llvm.James Y Knight2015-08-214-11/+53
| | | | | | | | | This is important in the case that the LLVM-inferred llvm-struct alignment is not the same as the clang-known C-struct alignment. Differential Revision: http://reviews.llvm.org/D12243 llvm-svn: 245719
* Filter libraries that are not installed out of CMake exports (currentlyDan Liew2015-08-212-10/+13
| | | | | | | | | | | | | | | | gtest and gtest_main) when generating ``Makefile.llvmbuild``. Libraries that are not installed should not be exported because they won't be available from an install tree. Rather than filtering out the gtest libraries in cmake/modules/Makefile, simply teach llvm-build to filter out libraries that will not be installed from its generated list of exported libraries. Note that LLVMBUILD_LIB_DEPS_* are used during our own CMake build process so we cannot filter LLVMBUILD_LIB_DEPS_gtest* out in llvm-build. We must leave this gtest filter logic in cmake/modules/Makefile. llvm-svn: 245718
* llvm-build: Adopt generation of LLVM_LIBS_TO_EXPORT. Patch byDan Liew2015-08-212-15/+16
| | | | | | | | | | | | | | | | | Brad King. Move `LLVM_LIBS_TO_EXPORT` over to Makefile.llvmbuild and generate it from `llvm-build` using the same logic used to export the dependencies of these libraries. This avoids depending on `llvm-config`. This refactoring was originally motivated by issue #24154 due to commit r243297 (Fix `llvm-config` to emit the linker flag for the combined shared object, 2015-07-27) changing the output of `llvm-config --libs` to not have the individual libraries when we configure with `--enable-shared`. That change was reverted by r244108 but this refactoring makes sense on its own anyway. llvm-svn: 245717
* llvm-build: Factor out duplicate cmake export listing. Patch byDan Liew2015-08-211-27/+36
| | | | | | | | | | Brad King. The write_cmake_fragment and write_cmake_exports_fragment methods share some logic for selecting libraries that CMake needs to know about. Factor it out into a helper to avoid duplication. llvm-svn: 245716
* [x86] enable machine combiner reassociations for 128-bit vector min/maxSanjay Patel2015-08-212-0/+104
| | | | llvm-svn: 245715
* [CMake] Need to filter out test architectures on ubsan as well.Chris Bieneman2015-08-211-1/+6
| | | | llvm-svn: 245714
* [CMake] Fixing haswell filtering.Chris Bieneman2015-08-211-2/+2
| | | | | | Turns out this wasn't working at all. llvm-svn: 245713
* Remove an unnecessary use of pointee types introduced in r194220David Blaikie2015-08-211-3/+2
| | | | | | | | David Majnemer (the original author) believes this to be an impossible condition to reach anyway, and no test cases cover this so we'll go with that. llvm-svn: 245712
* Disable Visual C++ 2013 Debug mode assert on null pointer in some STL ↵Yaron Keren2015-08-214-5/+7
| | | | | | | | | | | | | | | algorithms, such as std::equal on the third argument. This reverts previous workarounds. Predefining _DEBUG_POINTER_IMPL disables Visual C++ 2013 headers from defining it to a function performing the null pointer check. In practice, it's not that bad since any function actually using the nullptr will seg fault. The other iterator sanity checks remain enabled in the headers. Reviewed by Aaron Ballmanþ and Duncan P. N. Exon Smith. llvm-svn: 245711
* MIRLangRef: Describe the syntax for machine instruction names and flags.Alex Lorenz2015-08-211-1/+40
| | | | llvm-svn: 245710
* save some testing time; get rid of the non-SSE chips in this testSanjay Patel2015-08-211-20/+3
| | | | | | | It doesn't matter what slow/fast unaligned attribute the old chips have - they can't use anything more than 4-byte stores. llvm-svn: 245709
* Implement handling of `library:` keys in thread stop replies.Stephane Sezer2015-08-211-0/+4
| | | | | | | | | | | | | | | | | | | | Summary: When a windows remote stops because of a DLL load/unload, the debug server sends a stop reply packet that contains a `library` key with any value (usually just `library:1`). This indicates to the debugger that a library has been loaded or unloaded and that the list of libraries should be refreshed (usually with `qXfer:libraries:read`). This change just triggers a call to `LoadModules()` which in turns will send a remote library read command when a stop reply that requests it is received. Reviewers: clayborg, zturner, tberghammer Subscribers: lldb-commits Differential Revision: http://reviews.llvm.org/D12218 llvm-svn: 245708
* [APFloat] Remove else after return and replace loop with std::equal. NFC.Benjamin Kramer2015-08-211-11/+5
| | | | llvm-svn: 245707
* Fix typo - symetric -> symmetric.Eric Christopher2015-08-211-3/+3
| | | | llvm-svn: 245706
* Fix typo - symetric -> symmetric.Eric Christopher2015-08-211-1/+1
| | | | llvm-svn: 245705
* add a test case to check the fast-unaligned-mem attribute per CPUSanjay Patel2015-08-211-0/+108
| | | | | | | | This will confirm that the patch in D12154 is actually NFC. It will also confirm that the proposed changes for the AMD chips are behaving as expected. llvm-svn: 245704
* [clang-tidy] Migrate UseAuto from clang-modernize to clang-tidy.Angel Garcia Gomez2015-08-217-0/+1076
| | | | | | http://reviews.llvm.org/D12231 llvm-svn: 245703
* [compiler-rt] [sanitizers] Add aarch64 syscall optimization supportAdhemerval Zanella2015-08-213-0/+141
| | | | | | | This patch adds the inline syscall support for aarch64 instead of relying on the syscall runtime function. llvm-svn: 245702
* Test commit!Angel Garcia Gomez2015-08-211-0/+1
| | | | llvm-svn: 245701
* [RecordLayoutBuilder] Remove duplicated diagnostic argument. NFC.Benjamin Kramer2015-08-212-7/+7
| | | | llvm-svn: 245700
* [clang-tidy] Remove check_clang_tidy.sh that has been replaced with ↵Alexander Kornienko2015-08-211-54/+0
| | | | | | check_clang_tidy.py. llvm-svn: 245699
* Remove unused diagnostic.Benjamin Kramer2015-08-211-2/+0
| | | | llvm-svn: 245698
* [OPENMP 4.1] Add codegen for 'simdlen' clause.Alexey Bataev2015-08-212-4/+78
| | | | | | | | | Add emission of metadata for simd loops in presence of 'simdlen' clause. If 'simdlen' clause is provided without 'safelen' clause, the vectorizer width for the loop is set to value of 'simdlen' clause + all read/write ops in loop are marked with '!llvm.mem.parallel_loop_access' metadata. If 'simdlen' clause is provided along with 'safelen' clause, the vectorizer width for the loop is set to value of 'simdlen' clause + all read/write ops in loop are not marked with '!llvm.mem.parallel_loop_access' metadata. If 'safelen' clause is provided without 'simdlen' clause, the vectorizer width for the loop is set to value of 'safelen' clause + all read/write ops in loop are not marked with '!llvm.mem.parallel_loop_access' metadata. llvm-svn: 245697
* Fix BuildAddressRangeTable function when no debug arranges presentTamas Berghammer2015-08-211-2/+4
| | | | llvm-svn: 245696
* Fix type of dw_form_t in dwarf.hTamas Berghammer2015-08-211-1/+1
| | | | llvm-svn: 245695
* clang-format: Be more conservative about specially indenting blocks in C++.Daniel Jasper2015-08-213-13/+23
| | | | | | | | | | | | | | | | | | | | | | This is a bit of a step back of what we did in r222531, as there are some corner cases in C++, where this kind of formatting is really bad. Example: Before: virtual aaaaaaaaaaaaaaaa(std::function<bool()> IsKindWeWant = [&]() { return true; }, aaaaa aaaaaaaaa); After: virtual aaaaaaaaaaaaaaaa(std::function<bool()> IsKindWeWant = [&]() { return true; }, aaaaa aaaaaaaaa); The block formatting logic in JavaScript will probably go some other changes, too, and we'll potentially be able to make the rules more consistent again. For now, this seems to be the best approach for C++. llvm-svn: 245694
* [OPENMP 4.1] Add ast-print tests for 'val', 'uval' and 'ref' modifiers.Alexey Bataev2015-08-211-6/+10
| | | | llvm-svn: 245693
* [OPENMP 4.1] Initial support for 'simdlen' clause.Alexey Bataev2015-08-2125-27/+787
| | | | | | Add parsing/sema analysis for 'simdlen' clause in simd directives. Also add check that if both 'safelen' and 'simdlen' clauses are specified, the value of 'simdlen' parameter is less than the value of 'safelen' parameter. llvm-svn: 245692
OpenPOWER on IntegriCloud