summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* [XRay] Use correct type for PID recordsDean Michael Berris2018-08-313-18/+17
| | | | | | | | | Previously we've been reading and writing the wrong types which only worked in little endian implementations. This time we're writing the same typed values the runtime is using, and reading them appropriately as well. llvm-svn: 341241
* Tests: fix tests encoding specific hash values for 32-bit systems.Tim Northover2018-08-312-56/+3
| | | | | | | I changed the seed slightly, but forgot to run the tests on a 32-bit system, so tests which hard-code a specific hash value started breaking. llvm-svn: 341240
* [XRay] Use correct type for thread ID parsingDean Michael Berris2018-08-311-3/+3
| | | | | | | Previously we were reading only a uint16_t when we really needed to read an int32_t from the log. llvm-svn: 341239
* [Hexagon] Add support for getRegisterByName.Sid Manning2018-08-313-0/+72
| | | | | | | | Support required to build the Hexagon Linux kernel. Differential Revision: https://reviews.llvm.org/D51363 llvm-svn: 341238
* [XRay] Improve test matching granularity (NFC)Dean Michael Berris2018-08-311-30/+30
| | | | | | | Simplify matchers for unittest to better isolate which differences there are that we're finding in failures. llvm-svn: 341237
* [XRay] Change function record reader to be endian-awareDean Michael Berris2018-08-311-12/+13
| | | | | | | | | | | | | | | | | This change allows us to let the compiler do the right thing for when handling big-endian and little-endian records for FDR mode function records. Previously, we assumed that the encoding was little-endian that reading the first byte to look for the function id and function record types was ordered in a little-endian manner. This change allows us to better handle function records where the first four bytes may actually be encoded in big-endian thus giving us the wrong bytes where we're seeking the function information from. This is a follow-up to D51210 and D51289. llvm-svn: 341236
* Avoid using short identifiers in some testsPavel Labath2018-08-313-21/+21
| | | | | | | | | This applies the same workaround as r321271 to other tests. The root problem is that lldb finds an internal symbol with the same name in the debug info of system libraries, and then fails to disambiguate between the two. llvm-svn: 341235
* [X86] Add kshift intrinsics to match gcc and icc.Craig Topper2018-08-319-0/+148
| | | | | | | | | | | | | | This adds the following intrinsics: _kshiftli_mask8 _kshiftli_mask16 _kshiftli_mask32 _kshiftli_mask64 _kshiftri_mask8 _kshiftri_mask16 _kshiftri_mask32 _kshiftri_mask64 llvm-svn: 341234
* Fix a comment to use the correct variable name.Frederic Riss2018-08-311-2/+2
| | | | llvm-svn: 341233
* Export public functions implemented in assembly on Windows.Charles Davis2018-08-311-0/+8
| | | | | | | | | | | | | | | Summary: By default, symbols aren't visible outside of the module that defines them. To make them visible, they must be exported. The easiest way to do that is to embed an `-export:symname` directive into the object file. Reviewers: mstorsjo, rnk Subscribers: christof, cfe-commits Differential Revision: https://reviews.llvm.org/D51508 llvm-svn: 341232
* Refactor Addlibgcc to make the when and what logic more straightfoward.Sterling Augustine2018-08-312-12/+55
| | | | | | Add Android tests. llvm-svn: 341231
* [XRay] Fix FunctionRecord serializationDean Michael Berris2018-08-312-31/+10
| | | | | | | | | | | This change makes the writer implementation more consistent with the way fields are written down to avoid assumptions on bitfield order and padding. We also fix an inconsistency between the type returned by the `delta()` accessor to match the data member it's returning. This is a follow-up to D51289 and D51210. llvm-svn: 341230
* [hwasan] Fix new[] with zero size.Evgeniy Stepanov2018-08-313-10/+32
| | | | | | | Fixes "allocator is out of memory trying to allocate 0x0 bytes" by always allocating at least one byte. llvm-svn: 341229
* [DebugInfo] Common behavior for error typesAlexandre Ganea2018-08-3125-242/+159
| | | | | | | | | | | | | | | Following D50807, and heading towards D50664, this intermediary change does the following: 1. Upgrade all custom Error types in llvm/trunk/lib/DebugInfo/ to use the new StringError behavior (D50807). 2. Implement std::is_error_code_enum and make_error_code() for DebugInfo error enumerations. 3. Rename GenericError -> PDBError (the file will be renamed in a subsequent commit) 4. Update custom error messages to follow the same formatting: (\w\s*)+\. 5. Keep generic "file not found" (ENOENT) errors as they are in PDB code. Previously, there used to be a custom enumeration for that purpose. 6. Remove a few extraneous LF in log() implementations. Printing LF is a responsability at a higher level, not at the error level. Differential Revision: https://reviews.llvm.org/D51499 llvm-svn: 341228
* [X86] Add support for turning vXi1 shuffles into KSHIFTL/KSHIFTR.Craig Topper2018-08-313-210/+118
| | | | | | | | | | This patch recognizes shuffles that shift elements and fill with zeros. I've copied and modified the shift matching code we use for normal vector registers to do this. I'm not sure if there's a good way to share more of this code without making the existing function more complex than it already is. This will be used to enable kshift intrinsics in clang. Differential Revision: https://reviews.llvm.org/D51401 llvm-svn: 341227
* [XRay] Make Trace loading endian-awareDean Michael Berris2018-08-311-12/+21
| | | | | | | | | | | This change makes the XRay Trace loading functions first use a little-endian data extractor, then on failures try a big-endian data extractor. Without this change, the trace loading facility will not work with data written from a big-endian machine. Follow-up to D51210 and D51289. llvm-svn: 341226
* [XRay] Make the FDRTraceWriter Endian-awareDean Michael Berris2018-08-314-30/+40
| | | | | | | | | Before this patch, the FDRTraceWriter would not take endianness into account when writing data into the output stream. This is a follow-up to D51289 and D51210. llvm-svn: 341223
* [X86][BtVer2] Remove wrong ReadAdvance from AVX vbroadcast(ss|sd|f128) ↵Andrea Di Biagio2018-08-312-13/+13
| | | | | | | | | | | | | | | | | | | instructions. The presence of a ReadAdvance for input operand #0 is problematic because it changes the input latency of the register used as the base address for the folded load. A broadcast cannot start executing if the load address hasn't been computed yet. In the llvm-mca example, the VBROADCASTSS is dependent on the address generated by the LEAQ. That means, it cannot start until LEAQ reaches the write-back stage. If we apply ReadAdvance, then we wrongly assume that the load can start 3 cycles in advance. Differential Revision: https://reviews.llvm.org/D51534 llvm-svn: 341222
* [mips] Fix `mtc1` and `mfc1` definitions for microMIPS R6Simon Atanasyan2018-08-313-5/+73
| | | | | | | | | | | | | | | The `mtc1` and `mfc1` definitions in the MipsInstrFPU.td have MMRel, but do not have StdMMR6Rel tags. When these instructions are emitted for microMIPS R6 targets, `Mips::MipsR62MicroMipsR6` nor `Mips::Std2MicroMipsR6` cannot find correct op-codes and as a result the backend uses mips32 variant of the instructions encoding. The patch fixes this problem by adding the StdMMR6Rel tag and check instructions encoding in the test case. Differential revision: https://reviews.llvm.org/D51482 llvm-svn: 341221
* AMDGPU: Restrict extract_vector_elt combine to loadsMatt Arsenault2018-08-315-373/+192
| | | | | | | | | | | The intention is to enable the extract_vector_elt load combine, and doing this for other operations interferes with more useful optimizations on vectors. Handle any type of load since in principle we should do the same combine for the various load intrinsics. llvm-svn: 341219
* AMDGPU: Actually commit re-run of update_llc_test_checksMatt Arsenault2018-08-311-0/+1854
| | | | llvm-svn: 341218
* Fix existing code for SEH on ARM to compile correctlyMartin Storsjo2018-08-313-9/+14
| | | | | | | | | | | | | | | | | | | | Even though SEH for ARM is incomplete, make what code already exists at least compile correctly. The _LIBUNWIND_CURSOR_SIZE wasn't correct. ARM (and AArch64) have a DISPATCHER_CONTEXT field named TargetPc instead of TargetIp. For the libunwind.h UNW_* constants, there is no UNW_ARM_PC, only UNW_ARM_IP. Don't use 'r' as loop variable when 'r' already is a Registers_arm member. Differential Revision: https://reviews.llvm.org/D51530 llvm-svn: 341217
* [Wasm] Add missing EOF checks for floatsJonas Devlieghere2018-08-311-0/+4
| | | | | | | Adds the same checks we already do for ints to floats. Fixes: https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=8698 llvm-svn: 341216
* SLPVectorizer: Fix assert with different sized address spacesMatt Arsenault2018-08-312-1/+150
| | | | llvm-svn: 341215
* AMDGPU: Fix broken generated check linesMatt Arsenault2018-08-311-1311/+3
| | | | | | This was incorrectly using the same check prefix for multiple lines llvm-svn: 341214
* [X86] Add llvm-mca tests that show how operand latency is wrongly computed ↵Andrea Di Biagio2018-08-311-0/+206
| | | | | | | | | | | for SSE sqrtss/sd and rcpss. According to the timeline view, sqrtss/sd/rcpss start executing before the load address for the memory operand is available. This problem is caused by the presence of a ReadAfterLd (a ReadAdvance). Those unary operations should not specify a ReadAdvance at all. llvm-svn: 341213
* [DEBUGINFO] Add support for emission of the debug directives only.Alexey Bataev2018-08-3124-8/+85
| | | | | | | | | | | | | | | | Summary: Added option -gline-directives-only to support emission of the debug directives only. It behaves very similar to -gline-tables-only, except that it sets llvm debug info emission kind to llvm::DICompileUnit::DebugDirectivesOnly. Reviewers: echristo Subscribers: aprantl, fedor.sergeev, JDevlieghere, cfe-commits Differential Revision: https://reviews.llvm.org/D51177 llvm-svn: 341212
* [clangd] Flatten out Symbol::Details. It was ill-conceived, sorry.Sam McCall2018-08-3113-169/+67
| | | | | | | | | | Reviewers: ioeric Subscribers: ilya-biryukov, MaskRay, jkorous, arphaman, kadircet, cfe-commits Differential Revision: https://reviews.llvm.org/D51504 llvm-svn: 341211
* [AddressSpace] Use the macro to set hidden visibility on LocalAddressSpace.Charles Davis2018-08-311-1/+1
| | | | | | | | | | | | | | Summary: That attribute has no effect on Windows anyway--classes are hidden by default. Reviewers: mstorsjo, rnk Subscribers: christof, cfe-commits Differential Revision: https://reviews.llvm.org/D51509 llvm-svn: 341210
* [llvm-objdump] Keep the memory buffer from the dSYM alive when using -g -dsymFrancis Visoiu Mistrih2018-08-312-0/+7
| | | | | | | | | | When using -g and -dsym, llvm-objdump opens the dsym file and keeps the MachOObjectFile alive, while the memory buffer that the MachOObjectFile was based on gets destroyed. Differential Revision: https://reviews.llvm.org/D51365 llvm-svn: 341209
* [clangd] Collect symbol occurrences in SymbolCollector.Haojian Wu2018-08-315-27/+265
| | | | | | | | | | SymbolCollector will be used for two cases: - collect Symbol type only, used for indexing preamble AST. - collect Symbol and SymbolOccurrences, used for indexing main AST. For finding local references from the AST, we will implement it in other ways. llvm-svn: 341208
* [LLD] Add test missed from r341206. NFC.Ben Dunbobbin2018-08-311-0/+9
| | | | llvm-svn: 341207
* [LLD] Check too large offsets into merge sections earlierBen Dunbobbin2018-08-313-23/+12
| | | | | | | | | | | | | | | | | This patch moves the checking for too large offsets into merge sections earlier. Without this change the large offset generated in the added test-case will cause an assert (as it happens to be a value reserved as a "tombstone" in the DenseMap implementation) when OffsetMap is queried in getSectionPiece(). To simplify the code and avoid future mistakes I have refactored so that there is only one function that looks up offsets in the OffsetMap. Differential Revision: https://reviews.llvm.org/D51180 llvm-svn: 341206
* [XRay] Remove array for Metadata Record TypesDean Michael Berris2018-08-311-40/+28
| | | | | | | | | | This simplifies the implementation of the metadata lookup by using scoped enums, rather than using enum classes. This way we can get the number-name mapping without having to resort to comments. Follow-up to D51289. llvm-svn: 341205
* [GlobalISel][X86] Add the support for G_FPTRUNCAlexander Ivchenko2018-08-316-0/+141
| | | | | | Differential Revision: https://reviews.llvm.org/D49855 llvm-svn: 341202
* [GlobalISel][X86_64] Support for G_FPTOSIAlexander Ivchenko2018-08-315-3/+906
| | | | | | Differential Revision: https://reviews.llvm.org/D49183 llvm-svn: 341200
* [GlobalIsel][X86] Support for llvm.trap intrinsicAlexander Ivchenko2018-08-312-0/+47
| | | | | | Differential Revision: https://reviews.llvm.org/D49180 llvm-svn: 341199
* [NFC] Fix unused variable warning in X86RegisterBankInfo.cppAlexander Ivchenko2018-08-311-0/+1
| | | | llvm-svn: 341198
* [X86][BtVer2] Add an llvm-mca test that shows how the read latency of AVX ↵Andrea Di Biagio2018-08-311-0/+73
| | | | | | broadcastss on ymm registers is incorrectly set. llvm-svn: 341197
* [XRay] Attempt to fix failure on WindowsDean Michael Berris2018-08-312-6/+13
| | | | | | | | Original version of the code relied on implementation-defined order of bitfields. Follow-up on D51210. llvm-svn: 341194
* [GlobalIsel][X86] Support for G_FCMPAlexander Ivchenko2018-08-316-0/+3917
| | | | | | Differential Revision: https://reviews.llvm.org/D49172 llvm-svn: 341193
* Try to unbreak internal_sysctl() for MacOSXKamil Rytarowski2018-08-311-1/+2
| | | | | | Cast the 5th argument to (void *), removing cast. llvm-svn: 341192
* Fix MSVC "not all control paths return a value" warning. NFCI.Simon Pilgrim2018-08-311-0/+1
| | | | llvm-svn: 341191
* [NFC] Cleanup DexKirill Bobyrev2018-08-314-30/+33
| | | | | | | | | | | | | * Use consistent assertion messages in iterators implementations * Silence a bunch of clang-tidy warnings: use `emplace_back` instead of `push_back` where possible, make sure arguments have the same name in header and implementation file, use for loop over ranges where possible Reviewed by: ioeric Differential Revision: https://reviews.llvm.org/D51528 llvm-svn: 341190
* [XRay] FDRProducerConsumerTest: unbreak (gcc?) buildRoman Lebedev2018-08-311-3/+3
| | | | | | | | | | | | | /build/llvm/unittests/XRay/FDRProducerConsumerTest.cpp:90:27: error: declaration of ‘std::unique_ptr<llvm::xray::Record> llvm::xray::{anonymous}::RoundTripTest<T>::Record’ [-fpermissive] std::unique_ptr<Record> Record; ^~~~~~ In file included from /build/llvm/include/llvm/XRay/FDRLogBuilder.h:12, from /build/llvm/unittests/XRay/FDRProducerConsumerTest.cpp:15: /build/llvm/include/llvm/XRay/FDRRecords.h:28:7: error: changes meaning of ‘Record’ from ‘class llvm::xray::Record’ [-fpermissive] class Record { ^~~~~~ llvm-svn: 341189
* [NFC][X86][AArch64] A few more patterns for [lack of] signed truncation ↵Roman Lebedev2018-08-314-4/+78
| | | | | | check pattern.[NFC][X86][AArch64] A few more patterns for [lack of] signed truncation check pattern. llvm-svn: 341188
* Try to fix internal_sysctl() for MacOSXKamil Rytarowski2018-08-311-1/+1
| | | | | | Cast the first argument to (int *) removing const. llvm-svn: 341187
* XFail one more VSCode test which fails under heavy loadPavel Labath2018-08-311-0/+1
| | | | llvm-svn: 341186
* [X86][BtVer2] Fix WriteFShuffle256 schedule write info.Andrea Di Biagio2018-08-313-19/+23
| | | | | | | | | | | | | | | This patch fixes the number of micro opcodes, and processor resource cycles for the following AVX instructions: vinsertf128rr/rm vperm2f128rr/rm vbroadcastf128 Tests have been regenerated using the usual scripts in the llvm/utils directory. Differential Revision: https://reviews.llvm.org/D51492 llvm-svn: 341185
* NFC: Fix build failure after rL341182Kirill Bobyrev2018-08-311-1/+1
| | | | | | Didn't rename another variable reference. llvm-svn: 341184
OpenPOWER on IntegriCloud