-
Notifications
You must be signed in to change notification settings - Fork 733
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Pull down from intel branch #19
Commits on Jan 31, 2019
-
[llvm-objcopy] Skip --localize-symbol for undefined symbols
Summary: Include the symbol being defined in the list of requirements for using --localize-symbol. This is used, for example, when someone is depending on two different projects that have the same (or close enough) method defined in each library, and using "-L sym" for a conflicting symbol in one of the libraries so that the definition from the other one is used. However, the library may have internal references to the symbol, which cause program crashes when those are used, i.e.: ``` $ cat foo.c int foo() { return 5; } $ cat bar.c int foo(); int bar() { return 2 * foo(); } $ cat foo2.c int foo() { /* Safer implementation */ return 42; } $ cat main.c int bar(); int main() { __builtin_printf("bar = %d\n", bar()); return 0; } $ ar rcs libfoo.a foo.o bar.o $ ar rcs libfoo2.a foo2.o # Picks the wrong foo() impl $ clang main.o -lfoo -lfoo2 -L. -o main # Picks the right foo() impl $ objcopy -L foo libfoo.a && clang main.o -lfoo -lfoo2 -L. -o main # Links somehow, but crashes at runtime $ llvm-objcopy -L foo libfoo.a && clang main.o -lfoo -lfoo2 -L. -o main ``` Reviewers: jhenderson, alexshap, jakehehrlich, espindola Subscribers: emaste, arichardson Differential Revision: https://reviews.llvm.org/D57417 llvm-svn: 352767
Configuration menu - View commit details
-
Copy full SHA for bd7735f - Browse repository at this point
Copy the full SHA bd7735fView commit details -
Revert "[ThinLTO] Rename COMDATs for COFF when promoting/renaming COM…
…DAT leader" This reverts commit r352763. Causing a couple bot failures, root cause pointed to by sanitizer bot: http://lab.llvm.org:8011/builders/sanitizer-x86_64-linux-fast/builds/28909/steps/annotate/logs/stdio Use after free. I understand the issue but will revert and test with fix before recommitting. llvm-svn: 352768
Configuration menu - View commit details
-
Copy full SHA for 4877715 - Browse repository at this point
Copy the full SHA 4877715View commit details -
revert r352766: [PatternMatch] add special-case uaddo matching for in…
…crement-by-one Missed some regression test updates when testing this. llvm-svn: 352769
Configuration menu - View commit details
-
Copy full SHA for 4ec1599 - Browse repository at this point
Copy the full SHA 4ec1599View commit details -
Recommit "[ThinLTO] Rename COMDATs for COFF when promoting/renaming C…
…OMDAT leader" Recommit of r352763 with fix for use after free. llvm-svn: 352770
Configuration menu - View commit details
-
Copy full SHA for f59242e - Browse repository at this point
Copy the full SHA f59242eView commit details -
[CallSite removal] Remove CallSite uses from InstCombine.
Reviewers: chandlerc Reviewed By: chandlerc Subscribers: llvm-commits Differential Revision: https://reviews.llvm.org/D57494 llvm-svn: 352771
Configuration menu - View commit details
-
Copy full SHA for c1892ec - Browse repository at this point
Copy the full SHA c1892ecView commit details -
Fix use of non-existing variable in crashlog.py
Summary: The method find_matching_slice(self) uses uuid_str on one of the paths but the variable does not exist and so this results in a NameError exception if we take that path. Differential Revision: https://reviews.llvm.org/D57467 llvm-svn: 352772
Configuration menu - View commit details
-
Copy full SHA for d03bf06 - Browse repository at this point
Copy the full SHA d03bf06View commit details -
[X86][AVX] insert_subvector(bitcast(v), bitcast(s), c1) -> bitcast(in…
…sert_subvector(v,s,c2)) Similar to what we already do in DAGCombiner, but this version also handles bitcasts from types with different scalar sizes, which x86 is better at handling. Differential Revision: https://reviews.llvm.org/D57514 llvm-svn: 352773
Configuration menu - View commit details
-
Copy full SHA for d04a2d2 - Browse repository at this point
Copy the full SHA d04a2d2View commit details -
[X86][AVX] Fold concat(broadcast(x),broadcast(x)) -> broadcast(x)
Differential Revision: https://reviews.llvm.org/D57514 llvm-svn: 352774
Configuration menu - View commit details
-
Copy full SHA for eb6aef6 - Browse repository at this point
Copy the full SHA eb6aef6View commit details -
Configuration menu - View commit details
-
Copy full SHA for 00cefe1 - Browse repository at this point
Copy the full SHA 00cefe1View commit details -
[ADT] Fix a typo in isOSVersionLT that breaks the Micro version check
The original commit of this function (r129800 in 2011) had a typo where part of the "Micro" version check was actually comparing against the "Minor" version number. llvm-svn: 352776
Configuration menu - View commit details
-
Copy full SHA for 9f4563b - Browse repository at this point
Copy the full SHA 9f4563bView commit details -
GlobalISel: Fix handling of vectors of pointers in clamp{Min,Max}NumE…
…lements This avoids hitting the assert added in r352636 in a future commit. llvm-svn: 352777
Configuration menu - View commit details
-
Copy full SHA for 4b94d25 - Browse repository at this point
Copy the full SHA 4b94d25View commit details -
Configuration menu - View commit details
-
Copy full SHA for 02a86e6 - Browse repository at this point
Copy the full SHA 02a86e6View commit details -
Lower widenable_conditions in CGP
This ensures that if we make it to the backend w/o lowering widenable_conditions first, that we generate correct code. Doing it in CGP - instead of isel - let's us fold control flow before hitting block local instruction selection. Differential Revision: https://reviews.llvm.org/D57473 llvm-svn: 352779
Configuration menu - View commit details
-
Copy full SHA for ede49dd - Browse repository at this point
Copy the full SHA ede49ddView commit details -
[unittest] Fix scalar unit test.
The test was using ASSERT_EQ instead of ASSERT_STREQ which meant we were comparing string addresses instead of the actual string. This caused the test to fail with with the sanitizers enabled. llvm-svn: 352780
Configuration menu - View commit details
-
Copy full SHA for 043ff33 - Browse repository at this point
Copy the full SHA 043ff33View commit details -
Fix a bit of libc++-specific behavior in the regex tests; add a missi…
…ng test. Reviewed as https://reviews.llvm.org/D57391 Thanks to Andrey Maksimov for the patch llvm-svn: 352781
Configuration menu - View commit details
-
Copy full SHA for dd426c2 - Browse repository at this point
Copy the full SHA dd426c2View commit details -
Revert "[X86] Mark EMMS and FEMMS as clobbering MM0-7 and ST0-7."
This is causing a failure in chromium llvm-svn: 352782
Configuration menu - View commit details
-
Copy full SHA for a8f0745 - Browse repository at this point
Copy the full SHA a8f0745View commit details -
[Intrinsic] Expand SMULFIX to MUL, MULH[US], or [US]MUL_LOHI on vecto…
…r arguments r zero scale SMULFIX, expand into MUL which produces better code for X86. For vector arguments, expand into MUL if SMULFIX is provided with a zero scale. Otherwise, expand into MULH[US] or [US]MUL_LOHI. Differential Revision: https://reviews.llvm.org/D56987 llvm-svn: 352783
Configuration menu - View commit details
-
Copy full SHA for ae527ac - Browse repository at this point
Copy the full SHA ae527acView commit details -
[DAG] Aggressively cleanup dangling node in CombineZExtLogicopShiftLoad.
While dangling nodes will eventually be pruned when they are considered, leaving them disables combines requiring single-use. Reviewers: Carrot, spatel, craig.topper, RKSimon, efriedma Subscribers: hiraditya, llvm-commits Differential Revision: https://reviews.llvm.org/D57520 llvm-svn: 352784
Configuration menu - View commit details
-
Copy full SHA for 4061b44 - Browse repository at this point
Copy the full SHA 4061b44View commit details -
[ELF] Return the section name when calling getSymbolName on a section…
… symbol. Summary: Previously, llvm-nm would report symbols for .debug and .note sections as: '?' with an empty section name: ``` 00000000 ? 00000000 ? ... ``` With this patch the output more closely resembles GNU nm: ``` 00000000 N .debug_abbrev 00000000 n .note.GNU-stack ... ``` This patch calls `getSectionName` for sections that belong to symbols of type `ELF::STT_SECTION`, which returns the name of the section from the section string table. Reviewers: Bigcheese, davide, jhenderson Reviewed By: davide, jhenderson Subscribers: rupprecht, jhenderson, llvm-commits Differential Revision: https://reviews.llvm.org/D57105 llvm-svn: 352785
Matt Davis authored and Matt Davis committedJan 31, 2019 Configuration menu - View commit details
-
Copy full SHA for 82937e4 - Browse repository at this point
Copy the full SHA 82937e4View commit details -
[DAG][SystemZ] Define unwrapAddress for PCREL_WRAPPER.
Summary: Like with X86, this allows better DAG-level alias analysis and alignment inference for wrapped addresses. Reviewers: jonpa, uweigand Reviewed By: uweigand Subscribers: hiraditya, llvm-commits Differential Revision: https://reviews.llvm.org/D57407 llvm-svn: 352786
Configuration menu - View commit details
-
Copy full SHA for b792299 - Browse repository at this point
Copy the full SHA b792299View commit details -
[MemorySSA] Extend removeMemoryAccess API to optimize MemoryPhis.
Summary: EarlyCSE needs to optimize MemoryPhis after an access is removed and has special handling for it. This should be handled by MemorySSA instead. The default remains that MemoryPhis are *not* optimized after an access is removed. Reviewers: george.burgess.iv Subscribers: sanjoy, jlebar, llvm-commits, Prazek Differential Revision: https://reviews.llvm.org/D57199 llvm-svn: 352787
Configuration menu - View commit details
-
Copy full SHA for 240a90a - Browse repository at this point
Copy the full SHA 240a90aView commit details -
[CodeComplete] Propagate preferred types through parser in more cases
Preferred types are used by code completion for ranking. This commit considerably increases the number of points in code where those types are propagated. In order to avoid complicating signatures of Parser's methods, a preferred type is kept as a member variable in the parser and updated during parsing. Differential revision: https://reviews.llvm.org/D56723 llvm-svn: 352788
Configuration menu - View commit details
-
Copy full SHA for 4f9543b - Browse repository at this point
Copy the full SHA 4f9543bView commit details -
[fuzzer] Use RawPrint instead of Printf for instrumentation warning
Summary: Use RawPrint instead of Printf for instrumentation warning because Printf doesn't work on Win when instrumentation is being initialized (since OutputFile is not yet initialized). Reviewers: kcc Reviewed By: kcc Differential Revision: https://reviews.llvm.org/D57531 llvm-svn: 352789
Configuration menu - View commit details
-
Copy full SHA for fc7faec - Browse repository at this point
Copy the full SHA fc7faecView commit details -
[cmake] Note future cleanup in comment. NFC
CMake 3.6 introduced CMAKE_TRY_COMPILE_PLATFORM_VARIABLES, which solves precisely the problem that necessitated init_user_prop, so we can switch over whenever we bump our minimum CMake requirement. llvm-svn: 352790
Configuration menu - View commit details
-
Copy full SHA for e1b332e - Browse repository at this point
Copy the full SHA e1b332eView commit details -
[opaque pointer types] Add a FunctionCallee wrapper type, and use it.
The FunctionCallee type is effectively a {FunctionType*,Value*} pair, and is a useful convenience to enable code to continue passing the result of getOrInsertFunction() through to EmitCall, even once pointer types lose their pointee-type. Then: - update the CallInst/InvokeInst instruction creation functions to take a Callee, - modify getOrInsertFunction to return FunctionCallee, and - update all callers appropriately. One area of particular note is the change to the sanitizer code. Previously, they had been casting the result of `getOrInsertFunction` to a `Function*` via `checkSanitizerInterfaceFunction`, and storing that. That would report an error if someone had already inserted a function declaraction with a mismatching signature. However, in general, LLVM allows for such mismatches, as `getOrInsertFunction` will automatically insert a bitcast if needed. As part of this cleanup, cause the sanitizer code to do the same. (It will call its functions using the expected signature, however they may have been declared.) Finally, in a small number of locations, callers of `getOrInsertFunction` actually were expecting/requiring that a brand new function was being created. In such cases, I've switched them to Function::Create instead. Differential Revision: https://reviews.llvm.org/D57315 llvm-svn: 352791
Configuration menu - View commit details
-
Copy full SHA for f47d6b3 - Browse repository at this point
Copy the full SHA f47d6b3View commit details -
[DAGCombine] Avoid CombineZExtLogicopShiftLoad if there is free ZEXT
This patch fixes pr39098. For the attached test case, CombineZExtLogicopShiftLoad can optimize it to t25: i64 = Constant<1099511627775> t35: i64 = Constant<0> t0: ch = EntryToken t57: i64,ch = load<(load 4 from `i40* undef`, align 8), zext from i32> t0, undef:i64, undef:i64 t58: i64 = srl t57, Constant:i8<1> t60: i64 = and t58, Constant:i64<524287> t29: ch = store<(store 5 into `i40* undef`, align 8), trunc to i40> t57:1, t60, undef:i64, undef:i64 But later visitANDLike transforms it to t25: i64 = Constant<1099511627775> t35: i64 = Constant<0> t0: ch = EntryToken t57: i64,ch = load<(load 4 from `i40* undef`, align 8), zext from i32> t0, undef:i64, undef:i64 t61: i32 = truncate t57 t63: i32 = srl t61, Constant:i8<1> t64: i32 = and t63, Constant:i32<524287> t65: i64 = zero_extend t64 t58: i64 = srl t57, Constant:i8<1> t60: i64 = and t58, Constant:i64<524287> t29: ch = store<(store 5 into `i40* undef`, align 8), trunc to i40> t57:1, t60, undef:i64, undef:i64 And it triggers CombineZExtLogicopShiftLoad again, causes a dead loop. Both forms should generate same instructions, CombineZExtLogicopShiftLoad generated IR looks cleaner. But it looks more difficult to prevent visitANDLike to do the transform, so I prevent CombineZExtLogicopShiftLoad to do the transform if the ZExt is free. Differential Revision: https://reviews.llvm.org/D57491 llvm-svn: 352792
Configuration menu - View commit details
-
Copy full SHA for 0bed9e0 - Browse repository at this point
Copy the full SHA 0bed9e0View commit details -
[WebAssembly] Add bulk memory target feature
Summary: Also clean up some preexisting target feature code. Reviewers: aheejin Subscribers: dschuff, sbc100, jgravelle-google, hiraditya, sunfish, jfb Differential Revision: https://reviews.llvm.org/D57495 llvm-svn: 352793
Configuration menu - View commit details
-
Copy full SHA for 88058d4 - Browse repository at this point
Copy the full SHA 88058d4View commit details -
[EarlyCSE & MSSA] Cleanup special handling for removing MemoryAccesses.
Summary: Moving special handling to MemorySSAUpdater in D57199. Reviewers: gberry, george.burgess.iv Subscribers: sanjoy, jlebar, Prazek, llvm-commits Differential Revision: https://reviews.llvm.org/D57200 llvm-svn: 352794
Configuration menu - View commit details
-
Copy full SHA for e271889 - Browse repository at this point
Copy the full SHA e271889View commit details -
Configuration menu - View commit details
-
Copy full SHA for 0bd6b91 - Browse repository at this point
Copy the full SHA 0bd6b91View commit details -
[clangd] A code action to swap branches of an if statement
Reviewers: sammccall Reviewed By: sammccall Subscribers: llvm-commits, mgorny, ioeric, MaskRay, jkorous, arphaman, kadircet, cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D56611 llvm-svn: 352796
Configuration menu - View commit details
-
Copy full SHA for 4399878 - Browse repository at this point
Copy the full SHA 4399878View commit details -
[CUDA] Propagate detected version of CUDA to cc1
..and use it to control that parts of CUDA compilation that depend on the specific version of CUDA SDK. This patch has a placeholder for a 'new launch API' support which is in a separate patch. The list will be further extended in the upcoming patch to support CUDA-10.1. Differential Revision: https://reviews.llvm.org/D57487 llvm-svn: 352798
Configuration menu - View commit details
-
Copy full SHA for 8fa28a0 - Browse repository at this point
Copy the full SHA 8fa28a0View commit details -
[CUDA] add support for the new kernel launch API in CUDA-9.2+.
Instead of calling CUDA runtime to arrange function arguments, the new API constructs arguments in a local array and the kernels are launched with __cudaLaunchKernel(). The old API has been deprecated and is expected to go away in the next CUDA release. Differential Revision: https://reviews.llvm.org/D57488 llvm-svn: 352799
Configuration menu - View commit details
-
Copy full SHA for c62214d - Browse repository at this point
Copy the full SHA c62214dView commit details -
Revert "[opaque pointer types] Add a FunctionCallee wrapper type, and…
… use it." This reverts commit f47d6b3 (r352791). Seems to run into compilation failures with GCC (but not clang, where I tested it). Reverting while I investigate. llvm-svn: 352800
Configuration menu - View commit details
-
Copy full SHA for fadf250 - Browse repository at this point
Copy the full SHA fadf250View commit details -
Do not copy long double and 128-bit fp format from aux target for AMDGPU
rC352620 caused regressions because it copied floating point format from aux target. floating point format decides whether extended long double is supported. It is x86_fp80 on x86 but IEEE double on amdgcn. Document usage of long doubel type in HIP programming guide ROCm/HIP#890 Differential Revision: https://reviews.llvm.org/D57527 llvm-svn: 352801
Configuration menu - View commit details
-
Copy full SHA for 277e064 - Browse repository at this point
Copy the full SHA 277e064View commit details -
[Hexagon] Rename textually included file from .h to .inc
llvm-svn: 352802
Configuration menu - View commit details
-
Copy full SHA for 8f6182f - Browse repository at this point
Copy the full SHA 8f6182fView commit details -
Make clang/test/Index/pch-from-libclang.c pass in more places
- fixes the test on macOS with LLVM_ENABLE_PIC=OFF - together with D57343, gets the test to pass on Windows - makes it run everywhere (it seems to just pass on Linux) The main change is to pull out the resource directory computation into a function shared by all 3 places that do it. In CIndexer.cpp, this now works no matter if libclang is in lib/ or bin/ or statically linked to a binary in bin/. Differential Revision: https://reviews.llvm.org/D57345 llvm-svn: 352803
Configuration menu - View commit details
-
Copy full SHA for 0abcafd - Browse repository at this point
Copy the full SHA 0abcafdView commit details -
[ASTDump] Make template specialization tests more exact
Reviewers: aaron.ballman Subscribers: cfe-commits Differential Revision: https://reviews.llvm.org/D57502 llvm-svn: 352804
Configuration menu - View commit details
-
Copy full SHA for 9560b79 - Browse repository at this point
Copy the full SHA 9560b79View commit details -
[x86] add test for missed opportunity to use 'inc'; NFC
llvm-svn: 352805
Configuration menu - View commit details
-
Copy full SHA for d16ca2f - Browse repository at this point
Copy the full SHA d16ca2fView commit details -
[WebAssembly] MC: Fix for outputing wasm object to /dev/null
Subscribers: dschuff, jgravelle-google, aheejin, sunfish, llvm-commits Differential Revision: https://reviews.llvm.org/D57479 llvm-svn: 352806
Configuration menu - View commit details
-
Copy full SHA for c0affde - Browse repository at this point
Copy the full SHA c0affdeView commit details -
[RISCV] Add RV64F codegen support
This requires a little extra work due tothe fact i32 is not a legal type. When call lowering happens post-legalisation (e.g. when an intrinsic was inserted during legalisation). A bitcast from f32 to i32 can't be introduced. This is similar to the challenges with RV32D. To handle this, we introduce target-specific DAG nodes that perform bitcast+anyext for f32->i64 and trunc+bitcast for i64->f32. Differential Revision: https://reviews.llvm.org/D53235 llvm-svn: 352807
Configuration menu - View commit details
-
Copy full SHA for d834d83 - Browse repository at this point
Copy the full SHA d834d83View commit details -
Re-disable pch-from-libclang.c after 352803, some buildbots are still…
… unhappy llvm-svn: 352809
Configuration menu - View commit details
-
Copy full SHA for c944462 - Browse repository at this point
Copy the full SHA c944462View commit details -
Fixed hasLinkerPrivateGlobalPrefix treating StringRef as C String.
Reviewers: jgravelle-google, sbc100 Subscribers: aheejin, llvm-commits Differential Revision: https://reviews.llvm.org/D57545 llvm-svn: 352810
Configuration menu - View commit details
-
Copy full SHA for 5f563f0 - Browse repository at this point
Copy the full SHA 5f563f0View commit details -
Bump minimum toolchain version
Summary: The RFC on moving past C++11 got good traction: http://lists.llvm.org/pipermail/llvm-dev/2019-January/129452.html This patch therefore bumps the toolchain versions according to our policy: llvm.org/docs/DeveloperPolicy.html#toolchain Subscribers: mgorny, jkorous, dexonsmith, llvm-commits, mehdi_amini, jyknight, rsmith, chandlerc, smeenai, hans, reames, lattner, lhames, erichkeane Differential Revision: https://reviews.llvm.org/D57264 llvm-svn: 352811
Configuration menu - View commit details
-
Copy full SHA for 62bb58a - Browse repository at this point
Copy the full SHA 62bb58aView commit details -
DeveloperPolicy: update toolchain with sample RFC / patch
As was suggested when the policy originally went in. llvm-svn: 352812
Configuration menu - View commit details
-
Copy full SHA for d5dbe83 - Browse repository at this point
Copy the full SHA d5dbe83View commit details -
[WebAssembly] Fix a regression selecting negative build_vector lanes
Summary: The custom lowering introduced in rL352592 creates build_vector nodes with negative i32 operands, but these operands did not meet the value range constraints necessary to match build_vector nodes. This CL fixes the issue by removing the unnecessary constraints. Reviewers: aheejin Subscribers: dschuff, sbc100, jgravelle-google, hiraditya, sunfish Differential Revision: https://reviews.llvm.org/D57481 llvm-svn: 352813
Configuration menu - View commit details
-
Copy full SHA for 9a48438 - Browse repository at this point
Copy the full SHA 9a48438View commit details -
Revert "Bump minimum toolchain version"
A handful of bots are still breaking, either because I missed them in my audit, they were offline, or something else. I'm contacting their authors, but I'll revert for now and re-commit later. llvm-svn: 352814
Configuration menu - View commit details
-
Copy full SHA for e2dedd5 - Browse repository at this point
Copy the full SHA e2dedd5View commit details -
[libFuzzer][Windows] Temporarily disable value-profile-cmp2.test on Win
Summary: Temporarily disable value-profile-cmp2.test on Win. https://reviews.llvm.org/D57465 causes the test to fail on Win. However, it seems that the behavior of libFuzzer on Win was broken before that patch. It crashes in the exit handler when not used with ASAN. Prior to the patch, the crash handler would run, tricking the test into thinking libFuzzer on Win had exited properly. Reviewers: morehouse, vitalybuka Reviewed By: morehouse Subscribers: yln Differential Revision: https://reviews.llvm.org/D57551 llvm-svn: 352815
Configuration menu - View commit details
-
Copy full SHA for 6f94a03 - Browse repository at this point
Copy the full SHA 6f94a03View commit details -
hwasan: Add __hwasan_init_static() function.
This function initializes enough of the runtime to be able to run instrumented code in a statically linked executable. It replaces __hwasan_shadow_init() which wasn't doing enough initialization for instrumented code that uses either TLS or IFUNC to work. Differential Revision: https://reviews.llvm.org/D57490 llvm-svn: 352816
Configuration menu - View commit details
-
Copy full SHA for 886b7cc - Browse repository at this point
Copy the full SHA 886b7ccView commit details -
GlobalISel: Fix MMO creation with non-power-of-2 mem size
It should probably just be mandatory for getTgtMemIntrinsic to return the alignment. llvm-svn: 352817
Configuration menu - View commit details
-
Copy full SHA for 50d6579 - Browse repository at this point
Copy the full SHA 50d6579View commit details -
[sanitizer-coverage] prune trace-cmp instrumentation for CMP isntruct…
…ions that feed into the backedge branch. Instrumenting these CMP instructions is almost always useless (and harmful) for fuzzing llvm-svn: 352818
Configuration menu - View commit details
-
Copy full SHA for a78a44d - Browse repository at this point
Copy the full SHA a78a44dView commit details -
[libFuzzer] make a test for exploding dfsan labels more agressive
llvm-svn: 352819
Configuration menu - View commit details
-
Copy full SHA for ae667c4 - Browse repository at this point
Copy the full SHA ae667c4View commit details -
[x86] add test for missed opportunity to use 'inc'; NFC
Another pattern exposed in D57516. llvm-svn: 352820
Configuration menu - View commit details
-
Copy full SHA for da45d68 - Browse repository at this point
Copy the full SHA da45d68View commit details
Commits on Feb 1, 2019
-
[x86] adjust test to show both add/inc options; NFC
If we're optimizing for size, that overrides the subtarget feature, so we would always produce 'inc' if we matched this pattern. llvm-svn: 352821
Configuration menu - View commit details
-
Copy full SHA for ef9a388 - Browse repository at this point
Copy the full SHA ef9a388View commit details -
Revert "[Sema] Make canPassInRegisters return true if the CXXRecordDe…
…cl passed" This reverts commit r350920 as it is not clear whether we should force a class to be returned in registers when copy and move constructors are both deleted. For more background, see the following discussion: http://lists.llvm.org/pipermail/cfe-commits/Week-of-Mon-20190128/259907.html llvm-svn: 352822
Configuration menu - View commit details
-
Copy full SHA for 9e67183 - Browse repository at this point
Copy the full SHA 9e67183View commit details -
Mark __rela_iplt_{start,end} as weak.
Should fix non-lld links. llvm-svn: 352823
Configuration menu - View commit details
-
Copy full SHA for 6fa43f8 - Browse repository at this point
Copy the full SHA 6fa43f8View commit details -
[analyzer] [RetainCountChecker] Fix object type for CF/Obj-C bridged …
…casts Having an incorrect type for a cast causes the checker to incorrectly dismiss the operation under ARC, leading to a false positive use-after-release on the test. rdar://47709885 Differential Revision: https://reviews.llvm.org/D57557 llvm-svn: 352824
George Karpenkov committedFeb 1, 2019 Configuration menu - View commit details
-
Copy full SHA for b6c6ab3 - Browse repository at this point
Copy the full SHA b6c6ab3View commit details -
Fix names of functions in TargetOptionsCommandFlags.h. NFC.
Differential Revision: https://reviews.llvm.org/D57555 llvm-svn: 352825
Configuration menu - View commit details
-
Copy full SHA for dfbd190 - Browse repository at this point
Copy the full SHA dfbd190View commit details -
[ELF] Support --{,no-}allow-shlib-undefined
Summary: In ld.bfd/gold, --no-allow-shlib-undefined is the default when linking an executable. This patch implements a check to error on undefined symbols in a shared object, if all of its DT_NEEDED entries are seen. Our approach resembles the one used in gold, achieves a good balance to be useful but not too smart (ld.bfd traces all DSOs and emulates the behavior of a dynamic linker to catch more cases). The error is issued based on the symbol table, different from undefined reference errors issued for relocations. It is most effective when there are DSOs that were not linked with -z defs (e.g. when static sanitizers runtime is used). gold has a comment that some system libraries on GNU/Linux may have spurious undefined references and thus system libraries should be excluded (https://sourceware.org/bugzilla/show_bug.cgi?id=6811). The story may have changed now but we make --allow-shlib-undefined the default for now. Its interaction with -shared can be discussed in the future. Reviewers: ruiu, grimar, pcc, espindola Reviewed By: ruiu Subscribers: joerg, emaste, arichardson, llvm-commits Differential Revision: https://reviews.llvm.org/D57385 llvm-svn: 352826
Configuration menu - View commit details
-
Copy full SHA for b4744d3 - Browse repository at this point
Copy the full SHA b4744d3View commit details -
[opaque pointer types] Add a FunctionCallee wrapper type, and use it.
Recommit r352791 after tweaking DerivedTypes.h slightly, so that gcc doesn't choke on it, hopefully. Original Message: The FunctionCallee type is effectively a {FunctionType*,Value*} pair, and is a useful convenience to enable code to continue passing the result of getOrInsertFunction() through to EmitCall, even once pointer types lose their pointee-type. Then: - update the CallInst/InvokeInst instruction creation functions to take a Callee, - modify getOrInsertFunction to return FunctionCallee, and - update all callers appropriately. One area of particular note is the change to the sanitizer code. Previously, they had been casting the result of `getOrInsertFunction` to a `Function*` via `checkSanitizerInterfaceFunction`, and storing that. That would report an error if someone had already inserted a function declaraction with a mismatching signature. However, in general, LLVM allows for such mismatches, as `getOrInsertFunction` will automatically insert a bitcast if needed. As part of this cleanup, cause the sanitizer code to do the same. (It will call its functions using the expected signature, however they may have been declared.) Finally, in a small number of locations, callers of `getOrInsertFunction` actually were expecting/requiring that a brand new function was being created. In such cases, I've switched them to Function::Create instead. Differential Revision: https://reviews.llvm.org/D57315 llvm-svn: 352827
Configuration menu - View commit details
-
Copy full SHA for 1368022 - Browse repository at this point
Copy the full SHA 1368022View commit details -
[WebAssembly] Support imports from custom module names
Fixes: https://bugs.llvm.org/show_bug.cgi?id=37168 This is only a first pass at supporting these custom import modules. In the long run we most likely want to treat these kinds of symbols very differently. For example, it should not be possible to resolve such as symbol at static link type. Differential Revision: https://reviews.llvm.org/D45796 llvm-svn: 352828
Configuration menu - View commit details
-
Copy full SHA for 7cc0753 - Browse repository at this point
Copy the full SHA 7cc0753View commit details -
[Sanitizers] UBSan unreachable incompatible with ASan in the presence…
… of `noreturn` calls Summary: UBSan wants to detect when unreachable code is actually reached, so it adds instrumentation before every unreachable instruction. However, the optimizer will remove code after calls to functions marked with noreturn. To avoid this UBSan removes noreturn from both the call instruction as well as from the function itself. Unfortunately, ASan relies on this annotation to unpoison the stack by inserting calls to _asan_handle_no_return before noreturn functions. This is important for functions that do not return but access the the stack memory, e.g., unwinder functions *like* longjmp (longjmp itself is actually "double-proofed" via its interceptor). The result is that when ASan and UBSan are combined, the noreturn attributes are missing and ASan cannot unpoison the stack, so it has false positives when stack unwinding is used. Changes: Clang-CodeGen now directly insert calls to `__asan_handle_no_return` when a call to a noreturn function is encountered and both UBsan-unreachable and ASan are enabled. This allows UBSan to continue removing the noreturn attribute from functions without any changes to the ASan pass. Previously generated code: ``` call void @longjmp call void @__asan_handle_no_return call void @__ubsan_handle_builtin_unreachable ``` Generated code (for now): ``` call void @__asan_handle_no_return call void @longjmp call void @__asan_handle_no_return call void @__ubsan_handle_builtin_unreachable ``` rdar://problem/40723397 Reviewers: delcypher, eugenis, vsk Differential Revision: https://reviews.llvm.org/D57278 > llvm-svn: 352690 llvm-svn: 352829
Configuration menu - View commit details
-
Copy full SHA for b6c06dc - Browse repository at this point
Copy the full SHA b6c06dcView commit details -
Fix compilation of examples after 1368022 / r352827
Who knew...they're not built by default or as part of the tests. llvm-svn: 352830
Configuration menu - View commit details
-
Copy full SHA for 473e342 - Browse repository at this point
Copy the full SHA 473e342View commit details -
[SemaCXX] Param diagnostic matches overload logic
Summary: Given the following test program: ``` class C { public: int A(int a, int& b); }; int C::A(const int a, int b) { return a * b; } ``` Clang would produce an error message that correctly diagnosed the redeclaration of `C::A` to not match the original declaration (the parameters to the two declarations do not match -- the original takes an `int &` as its 2nd parameter, but the redeclaration takes an `int`). However, it also produced a note diagnostic that inaccurately pointed to the first parameter, claiming that `const int` in the redeclaration did not match the unqualified `int` in the original. The diagnostic is misleading because it has nothing to do with why the program does not compile. The logic for checking for a function overload, in `Sema::FunctionParamTypesAreEqual`, discards cv-qualifiers before checking whether the types are equal. Do the same when producing the overload diagnostic. Reviewers: rsmith Reviewed By: rsmith Subscribers: cpplearner, cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D57032 llvm-svn: 352831
Configuration menu - View commit details
-
Copy full SHA for 3aba9fd - Browse repository at this point
Copy the full SHA 3aba9fdView commit details -
[SelectionDAG] Support promotion of the FPOWI integer operand
For targets where i32 is not a legal type (e.g. 64-bit RISC-V), LegalizeIntegerTypes must promote the integer operand of ISD::FPOWI. As this is a signed value, this should be sign-extended. This patch enables all tests in test/CodeGen/RISCVfloat-intrinsics.ll for RV64, as prior to this patch that file couldn't be compiled for RV64 due to an assertion when performing codegen for fpowi. Differential Revision: https://reviews.llvm.org/D54574 llvm-svn: 352832
Configuration menu - View commit details
-
Copy full SHA for 32b7738 - Browse repository at this point
Copy the full SHA 32b7738View commit details -
[RISCV] Implement RV64D codegen
This patch: * Adds necessary RV64D codegen patterns * Modifies CC_RISCV so it will properly handle f64 types (with soft float ABI) Note that in general there is no reason to try to select fcvt.w[u].d rather than fcvt.l[u].d for i32 conversions because fptosi/fptoui produce poison if the input won't fit into the target type. Differential Revision: https://reviews.llvm.org/D53237 llvm-svn: 352833
Configuration menu - View commit details
-
Copy full SHA for 7539fa2 - Browse repository at this point
Copy the full SHA 7539fa2View commit details -
Bump minimum toolchain version
Summary: The RFC on moving past C++11 got good traction: http://lists.llvm.org/pipermail/llvm-dev/2019-January/129452.html This patch therefore bumps the toolchain versions according to our policy: llvm.org/docs/DeveloperPolicy.html#toolchain Subscribers: mgorny, jkorous, dexonsmith, llvm-commits, mehdi_amini, jyknight, rsmith, chandlerc, smeenai, hans, reames, lattner, lhames, erichkeane Differential Revision: https://reviews.llvm.org/D57264 llvm-svn: 352834
Configuration menu - View commit details
-
Copy full SHA for 77074f9 - Browse repository at this point
Copy the full SHA 77074f9View commit details -
Revert "Bump minimum toolchain version"
Looks like we still have a few bots that are sad. Let try to get them fixed! llvm-svn: 352835
Configuration menu - View commit details
-
Copy full SHA for c6931dd - Browse repository at this point
Copy the full SHA c6931ddView commit details -
[clangd] Fix crash in applyTweak, remove TweakID alias.
Strings are complicated, giving them opaque names makes us forget they're complicated. llvm-svn: 352837
Configuration menu - View commit details
-
Copy full SHA for 8a32f3b - Browse repository at this point
Copy the full SHA 8a32f3bView commit details -
Fix isInSystemMacro to handle pasted macros
Token pasted by the preprocessor (through ##) have a Spelling pointing to scratch buffer. As a result they are not recognized at system macro, even though the pasting happened in a system macro. Fix that by looking into the parent macro if the original lookup finds a scratch buffer. Differential Revision: https://reviews.llvm.org/D55782 This effectively fixes https://bugs.llvm.org/show_bug.cgi?id=35268, llvm-svn: 352838
Serge Guelton committedFeb 1, 2019 Configuration menu - View commit details
-
Copy full SHA for 5ef88bd - Browse repository at this point
Copy the full SHA 5ef88bdView commit details -
[SLPVectorizer] Get rid of IndexQueue array from vectorizeStores. NFCI.
Indices are checked as they are generated. No need to fill the whole array of indices. Differential Revision: https://reviews.llvm.org/D57144 llvm-svn: 352839
Yevgeny Rouban committedFeb 1, 2019 Configuration menu - View commit details
-
Copy full SHA for 4cdd783 - Browse repository at this point
Copy the full SHA 4cdd783View commit details -
[obj2yaml] - Merge dumpRelSection and dumpRelaSection. NFC.
These methods are very similar, patch merge them into one. Differential revision: https://reviews.llvm.org/D57461 llvm-svn: 352840
George Rimar committedFeb 1, 2019 Configuration menu - View commit details
-
Copy full SHA for afe8a04 - Browse repository at this point
Copy the full SHA afe8a04View commit details -
[clangd] Fix -DBUILD_SHARED_LIBS=ON build - SwapIfBranches needs clan…
…gAST. Else, fails with: [1/2] Linking CXX executable bin/clangd FAILED: bin/clangd : && /usr/bin/g++ -pipe -O2 -g0 -UNDEBUG -fPIC -fvisibility-inlines-hidden -Werror=date-time -std=c++11 -Wall -Wextra -Wno-unused-parameter -Wwrite-strings -Wcast-qual -Wno-missing-field-initializers -pedantic -Wno-long-long -Wimplicit-fallthrough -Wno-maybe-uninitialized -Wno-class-memaccess -Wno-noexcept-type -Wdelete-non-virtual-dtor -Wno-comment -fdiagnostics-color -ffunction-sections -fdata-sections -fno-common -Woverloaded-virtual -fno-strict-aliasing -pipe -O2 -g0 -UNDEBUG -fuse-ld=lld -Wl,--color-diagnostics -Wl,-allow-shlib-undefined -Wl,-O3 -Wl,--gc-sections tools/clang/tools/extra/clangd/refactor/tweaks/CMakeFiles/obj.clangDaemonTweaks.dir/SwapIfBranches.cpp.o tools/clang/tools/extra/clangd/tool/CMakeFiles/clangd.dir/ClangdMain.cpp.o -o bin/clangd -Wl,-rpath,"\$ORIGIN/../lib" lib/libLLVMSupport.so.9svn -lpthread lib/libclangBasic.so.9svn lib/libclangTidy.so.9svn lib/libclangDaemon.so.9svn lib/libclangFormat.so.9svn lib/libclangFrontend.so.9svn lib/libclangSema.so.9svn lib/libclangTooling.so.9svn lib/libclangToolingCore.so.9svn && : ld.lld: error: undefined symbol: clang::FunctionDecl::getBody(clang::FunctionDecl const*&) const >>> referenced by SwapIfBranches.cpp >>> tools/clang/tools/extra/clangd/refactor/tweaks/CMakeFiles/obj.clangDaemonTweaks.dir/SwapIfBranches.cpp.o:(clang::FunctionDecl::getBody() const) and so on. llvm-svn: 352841
Configuration menu - View commit details
-
Copy full SHA for 11f7969 - Browse repository at this point
Copy the full SHA 11f7969View commit details -
Configuration menu - View commit details
-
Copy full SHA for f3e00fe - Browse repository at this point
Copy the full SHA f3e00feView commit details -
[clangd] clangDaemonTweaks - fix -DBUILD_SHARED_LIBS=ON build
Followup for rL352841. llvm-svn: 352843
Configuration menu - View commit details
-
Copy full SHA for 3440c33 - Browse repository at this point
Copy the full SHA 3440c33View commit details -
[CodeGen] Don't scavenge non-saved regs in exception throwing functions
Previously, LiveRegUnits was assuming that if a block has no successors and does not return, then no registers are live at the end of it (because the end of the block is unreachable). This was causing the register scavenger to use callee-saved registers to materialise stack frame addresses without saving them in the prologue. This would normally be fine, because the end of the block is unreachable, but this is not legal if the block ends by throwing a C++ exception. If this happens, the scratch register will be modified, but its previous value won't be preserved, so it doesn't get restored by the exception unwinder. Differential revision: https://reviews.llvm.org/D57381 llvm-svn: 352844
Configuration menu - View commit details
-
Copy full SHA for bac1151 - Browse repository at this point
Copy the full SHA bac1151View commit details -
[PDB] Fix location retrieval for function local variables and argumen…
…ts that are stored relative to VFRAME Summary: This patch makes LLDB able to retrieve proper values for function arguments and local variables stored in PDB relative to VFRAME register. Patch contains retrieval of corresponding FPO table entries from PDB and a generic translator from FPO programs to DWARF expressions to get correct VFRAME value. Patch also improves variables-locations.test and makes this test passable on x86. Patch By: leonid.mashinsky Reviewers: zturner, asmith, stella.stamenova, aleksandr.urakov Reviewed By: zturner Subscribers: arphaman, labath, mgorny, aprantl, JDevlieghere, lldb-commits Tags: #lldb Differential Revision: https://reviews.llvm.org/D55122 llvm-svn: 352845
Aleksandr Urakov committedFeb 1, 2019 Configuration menu - View commit details
-
Copy full SHA for 758657e - Browse repository at this point
Copy the full SHA 758657eView commit details -
[doc]Update String Error documentation in Programmer Manual
A while back, createStringError was added to provide easier construction of StringError instances, especially with formatting options. Prior to this patch, that the documentation only mentions the standard method of using it. Since createStringError is slightly shorter to type, and also provides the formatting options, this patch updates the Programmer's Manual to use the new function in its examples, and to mention the printf formatting options. It also fixes a small typo in one of the examples and removes the unnecessary make_error_code call. llvm-svn: 352846
Configuration menu - View commit details
-
Copy full SHA for fb3ca13 - Browse repository at this point
Copy the full SHA fb3ca13View commit details -
[llvm-symbolizer][test] Rename and tweak tests using llvm-symbolizer
Prior to this change, there are a few tests called llvm-symbolizer* in the DebugInfo test area. These really were testing either the DebugInfo or Symbolizer library, rather than the llvm-symbolizer tool itself, so this patch renames them to be clearer that they aren't explicitly tests for llvm-symbolizer (such tests belong in test/tools/llvm-symbolizer). This patch also reinstates the copying of a DWO file, removed previously in r352752. The test needs this so that it could possibly fail. Finally, some of the tests have been simplified slightly by removing unnecessary switches and/or unused check-prefixes. Reviewed by: dblaikie Differential Revision: https://reviews.llvm.org/D57518 llvm-svn: 352847
Configuration menu - View commit details
-
Copy full SHA for 563a29d - Browse repository at this point
Copy the full SHA 563a29dView commit details -
This was causing a build bot failure: http://green.lab.llvm.org/green/job/clang-stage2-Rthinlto/15346/ llvm-svn: 352848
Configuration menu - View commit details
-
Copy full SHA for 212833c - Browse repository at this point
Copy the full SHA 212833cView commit details -
Provide reason messages for unviable inlining
InlineCost's isInlineViable() is changed to return InlineResult instead of bool. This provides messages for failure reasons and allows to get more specific messages for cases where callsites are not viable for inlining. Reviewed By: xbolva00, anemet Differential Revision: https://reviews.llvm.org/D57089 llvm-svn: 352849
Yevgeny Rouban committedFeb 1, 2019 Configuration menu - View commit details
-
Copy full SHA for 15b17d0 - Browse repository at this point
Copy the full SHA 15b17d0View commit details -
Configuration menu - View commit details
-
Copy full SHA for 554644e - Browse repository at this point
Copy the full SHA 554644eView commit details -
Configuration menu - View commit details
-
Copy full SHA for 2c15fc5 - Browse repository at this point
Copy the full SHA 2c15fc5View commit details -
[X86][BdVer2] Transfer delays from the integer to the floating point …
…unit. Summary: I'm unable to find this number in the "AMD SOG for family 15h". llvm-exegesis measures the latencies of these instructions as `2`, which matches the latencies specified in "AMD SOG for family 15h". However if we look at Agner, Microarchitecture, "AMD Bulldozer, Piledriver, Steamroller and Excavator pipeline", "Data delay between different execution domains", the int->ivec transfer is listed as `8`..`10`cy of additional latency. Also, Agner's "Instruction tables", for Piledriver, lists their latencies as `12`, which is consistent with `2cy` from exegesis / AMD SOG + `10cy` transfer delay. Additional data point comes from the fact that Agner's "Instruction tables", for Jaguar, lists their latencies as `8`; and "AMD SOG for family 16h" does state the `+6cy` int->ivec delay, which is consistent with instr latency of `1` or `2`. Reviewers: andreadb, RKSimon, craig.topper Reviewed By: andreadb Subscribers: gbedwell, courbet, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D57300 llvm-svn: 352861
Configuration menu - View commit details
-
Copy full SHA for 7857215 - Browse repository at this point
Copy the full SHA 7857215View commit details -
Disable tidy checks with too many hits
Summary: Some tidy checks have too many hits in the codebase, making it hard to spot other results from clang-tidy, therefore rendering the tool less useful. Two checks were disabled: - misc-non-private-member-variable-in-classes in the whole LLVM monorepo, it is very common to have those in LLVM and the style guide does not forbid them. - readability-identifier-naming in the clang subtree. There are thousands of violations in 'Sema.h' alone. Before the change, 'Sema.h' had >1000 tidy warnings, after the change the number dropped to 3 warnings (unterminated namespace comments). Reviewers: alexfh, hokein Reviewed By: hokein Subscribers: llvm-commits, cfe-commits Tags: #clang, #llvm Differential Revision: https://reviews.llvm.org/D57573 llvm-svn: 352862
Configuration menu - View commit details
-
Copy full SHA for d226bc8 - Browse repository at this point
Copy the full SHA d226bc8View commit details -
[clangd] Use delimited style to make life easier for the fuzzer
llvm-svn: 352863
Configuration menu - View commit details
-
Copy full SHA for b34fca6 - Browse repository at this point
Copy the full SHA b34fca6View commit details -
[clangd] Implement textDocument/declaration from LSP 3.14
Summary: LSP now reflects the declaration/definition distinction. Language server changes: - textDocument/definition now returns a definition if one is found, otherwise the declaration. It no longer returns declaration + definition if they are distinct. - textDocument/declaration returns the best declaration we can find. - For macros, the active macro definition is returned for both methods. - For include directive, the top of the target file is returned for both. There doesn't appear to be a discovery mechanism (we can't return everything to clients that only know about definition), so this changes existing behavior. In practice, it should greatly reduce the fraction of the time we need to show the user a menu of options. C++ API changes: - findDefinitions is replaced by locateSymbolAt, which returns a vector<LocatedSymbol> - one for each symbol under the cursor. - this contains the preferred declaration, the definition (if found), and the symbol name This API enables some potentially-neat extensions, like swapping between decl and def, and exposing the symbol name to the UI in the case of multiple symbols. Reviewers: hokein Subscribers: ilya-biryukov, javed.absar, ioeric, MaskRay, jkorous, arphaman, kadircet, cfe-commits Differential Revision: https://reviews.llvm.org/D57388 llvm-svn: 352864
Configuration menu - View commit details
-
Copy full SHA for 866ba2c - Browse repository at this point
Copy the full SHA 866ba2cView commit details -
[CUDA] Relax lit test condition after r352798.
Clang executable doesn't match clang.* in all test environment. llvm-svn: 352865
Eric Liu committedFeb 1, 2019 Configuration menu - View commit details
-
Copy full SHA for f4b19c0 - Browse repository at this point
Copy the full SHA f4b19c0View commit details -
[AArch64] Optimize floating point materialization
This patch changes isFPImmLegal to return if the value can be enconded as the immediate operand of a logical instruction besides checking if for immediate field for fmov. This optimizes some floating point materization, inclusive values used on isinf lowering. Reviewed By: rengolin, efriedma, evandro Differential Revision: https://reviews.llvm.org/D57044 llvm-svn: 352866
Configuration menu - View commit details
-
Copy full SHA for b3ccc55 - Browse repository at this point
Copy the full SHA b3ccc55View commit details -
[clangd] Penalize file-scope symbols in the ranking for non-completio…
…n queries Patch by Nathan Ridge! Differential Revision: https://reviews.llvm.org/D56653 llvm-svn: 352868
Configuration menu - View commit details
-
Copy full SHA for a4cf26b - Browse repository at this point
Copy the full SHA a4cf26bView commit details -
[CMake] Add install targets for utilities to LLVM exports if LLVM_INS…
…TALL_UTILS=ON Summary: D56606 was only appending target names to the `LLVM_EXPORTS`/`LLVM_EXPORTS_BUILDTREE_ONLY` properties. Targets showed up correctly in the build-tree `LLVMExports.cmake`, but they were missing in the installed one (as we found in https://bugs.llvm.org/show_bug.cgi?id=40443), because install did not register them explicitly. Reviewers: mgorny, smeenai, beanz, gottesmm, dschuff, tstellar, serge-sans-paille Reviewed By: smeenai Subscribers: llvm-commits Differential Revision: https://reviews.llvm.org/D57383 llvm-svn: 352869
Configuration menu - View commit details
-
Copy full SHA for d9e66e1 - Browse repository at this point
Copy the full SHA d9e66e1View commit details -
[InstCombine] try to reduce x86 addcarry to generic uaddo intrinsic
If we can reduce the x86-specific intrinsic to the generic op, it allows existing simplifications and value tracking folds. AFAICT, this always results in identical x86 codegen in the non-reduced case...which should be true because we semi-generically (too aggressively IMO) convert to llvm.uadd.with.overflow in CGP, so the DAG/isel must already combine/lower this intrinsic as expected. This isn't quite what was requested in: https://bugs.llvm.org/show_bug.cgi?id=40486 ...but we want to have these kinds of folds early for efficiency and to enable greater simplifications. For the case in the bug report where we have: _addcarry_u64(0, ahi, 0, &ahi) ...this gets completely simplified away in IR. Differential Revision: https://reviews.llvm.org/D57453 llvm-svn: 352870
Configuration menu - View commit details
-
Copy full SHA for be23a91 - Browse repository at this point
Copy the full SHA be23a91View commit details -
Configuration menu - View commit details
-
Copy full SHA for 8495aab - Browse repository at this point
Copy the full SHA 8495aabView commit details -
[libclang] Fix -DBUILD_SHARED_LIBS=on build after rC352803
llvm-svn: 352872
Configuration menu - View commit details
-
Copy full SHA for 4fb0a2c - Browse repository at this point
Copy the full SHA 4fb0a2cView commit details -
[InstCombine] reduce duplicate code; NFC
An unused variable problem was introduced with rL352870 and stubbed out with rL352871, but we can make a better fix by actually using the local variable in code rather than just the assert. llvm-svn: 352873
Configuration menu - View commit details
-
Copy full SHA for fbcbac7 - Browse repository at this point
Copy the full SHA fbcbac7View commit details -
[clangd] Lib to compute and represent selection under cursor.
Summary: The primary problem this solves is to expose the codeAction selection to AST-based refactorings in a way that makes it easy and efficient for them to bind to the right parts of the AST. It should also allow us to make XRefs based features (textDocument/definition) more robust, more easily implement textDocument/typeDefinition etc. As an example, template parameter references can be identified without special handling. There should be slight speedup too: we can prune most of the AST traversal in most cases. Elephant in the room: this is similar-but-different to Tooling/Refactoring/ASTSelection. That captures a smaller set of AST nodes, has a slightly different way of representing selections, and generally has mare features and does more work. The overall shape is pretty similar, and yet I can't quite get to behave as I expect. Reviewers: ilya-biryukov, kadircet Subscribers: mgorny, ioeric, MaskRay, jkorous, mgrang, arphaman Tags: #clang Differential Revision: https://reviews.llvm.org/D57562 llvm-svn: 352874
Configuration menu - View commit details
-
Copy full SHA for 3186e3c - Browse repository at this point
Copy the full SHA 3186e3cView commit details -
[clangd] Lib to compute and represent selection under cursor.
Summary: The primary problem this solves is to expose the codeAction selection to AST-based refactorings in a way that makes it easy and efficient for them to bind to the right parts of the AST. It should also allow us to make XRefs based features (textDocument/definition) more robust, more easily implement textDocument/typeDefinition etc. As an example, template parameter references can be identified without special handling. There should be slight speedup too: we can prune most of the AST traversal in most cases. Elephant in the room: this is similar-but-different to Tooling/Refactoring/ASTSelection. That captures a smaller set of AST nodes, has a slightly different way of representing selections, and generally has mare features and does more work. The overall shape is pretty similar, and yet I can't quite get to behave as I expect. Reviewers: ilya-biryukov, kadircet Subscribers: mgorny, ioeric, MaskRay, jkorous, mgrang, arphaman Tags: #clang Differential Revision: https://reviews.llvm.org/D57562 llvm-svn: 352875
Configuration menu - View commit details
-
Copy full SHA for 2048f22 - Browse repository at this point
Copy the full SHA 2048f22View commit details -
[clangd] Expose SelectionTree to code tweaks, and use it for swap if …
…branches. Summary: This reduces the per-check implementation burden and redundant work. It also makes checks range-aware by default (treating the commonAncestor as if it were a point selection should be good baseline behavior). Reviewers: ilya-biryukov Subscribers: ioeric, MaskRay, jkorous, arphaman, kadircet Tags: #clang Differential Revision: https://reviews.llvm.org/D57570 llvm-svn: 352876
Configuration menu - View commit details
-
Copy full SHA for 9c8f432 - Browse repository at this point
Copy the full SHA 9c8f432View commit details -
[llvm-objcopy][NFC] Propagate errors in removeSymbols/removeSectionRe…
…ferences Reviewers: jhenderson, alexshap, jakehehrlich, espindola Reviewed By: jhenderson Subscribers: emaste, arichardson, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D57543 llvm-svn: 352877
Configuration menu - View commit details
-
Copy full SHA for 971d476 - Browse repository at this point
Copy the full SHA 971d476View commit details -
[llvm-strip] Implement --keep-file-symbols
Differential revision: https://reviews.llvm.org/D57582 llvm-svn: 352878
Configuration menu - View commit details
-
Copy full SHA for 05a3f99 - Browse repository at this point
Copy the full SHA 05a3f99View commit details -
[X86][AVX] Combine INSERT_SUBVECTOR(SRC0, BITCAST(SHUFFLE(EXTRACT_SUB…
…VECTOR(SRC1))) Enable peeking through one use bitcasts to the subvector shuffle. This still depends on the subvector being the same scalar-size but D57514 has already helped with the more tricky patterns llvm-svn: 352879
Configuration menu - View commit details
-
Copy full SHA for 1a529f5 - Browse repository at this point
Copy the full SHA 1a529f5View commit details -
[TargetLowering] try harder to determine undef elements of vector binops
This might be the start of tracking all vector element constants generally if we take it to its logical conclusion, but let's stop here and make sure this is correct/beneficial so far. The affected tests require a convoluted path before they get simplified currently because we don't call SimplifyDemandedVectorElts() from binops directly and don't modify the binop operands directly in SimplifyDemandedVectorElts(). That's why the tests all have a trailing shuffle to induce a chain reaction of transforms. So something like this is happening: 1. Improve the knowledge of undefs in the binop via a SimplifyDemandedVectorElts() call that originates from a shuffle. 2. Transfer that undef knowledge back to the shuffle mask user as more undef lanes. 3. Combine the modified shuffle by calling SimplifyDemandedVectorElts() again. 4. Translate the improved shuffle mask as undemanded lanes of build vector constants causing those to become full undef constants. 5. Simplify the binop now that it has a full undef operand. As we can see from the unchanged 'and' and 'or' tests, tracking undefs alone isn't a full solution. We would need to track zero and all-ones constants to improve those opcodes. We'd probably need to track NaN for FP ops too (assuming we don't have fast-math-flags set). Differential Revision: https://reviews.llvm.org/D57066 llvm-svn: 352880
Configuration menu - View commit details
-
Copy full SHA for 0279b5b - Browse repository at this point
Copy the full SHA 0279b5bView commit details -
[CMake] External compiler-rt-configure requires LLVMTestingSupport wh…
…en including tests Summary: Apparently `LLVMTestingSupport` must be built before `llvm-config` can be asked for it. Symptom with `LLVM_INCLUDE_TESTS=ON` is: ``` $ ./path/to/llvm-build/bin/llvm-config --ldflags --libs testingsupport -L/path/to/llvm-build/lib -Wl,-search_paths_first -Wl,-headerpad_max_install_names llvm-config: error: component libraries and shared library llvm-config: error: missing: /path/to/llvm-build/lib/libLLVMTestingSupport.a ``` With `LLVMTestingSupport` as dependency of `compiler-rt-configure` we get the expected behavior: ``` $ ./path/to/llvm-build/bin/llvm-config --ldflags --libs testingsupport -L/path/to/llvm-build/lib -Wl,-search_paths_first -Wl,-headerpad_max_install_names -lLLVMTestingSupport -lLLVMSupport -lLLVMDemangle ``` Reviewers: ab, beanz Subscribers: dberris, mgorny, erik.pilkington, llvm-commits, cfe-commits Differential Revision: https://reviews.llvm.org/D57521 llvm-svn: 352881
Configuration menu - View commit details
-
Copy full SHA for f869996 - Browse repository at this point
Copy the full SHA f869996View commit details -
[AST][OpenMP] OpenMP Sections / Section constructs contain Structured…
… blocks Summary: I'm working on a clang-tidy check, much like existing [[ http://clang.llvm.org/extra/clang-tidy/checks/bugprone-exception-escape.html | bugprone-exception-escape ]], to detect when an exception might escape out of an OpenMP construct it isn't supposed to escape from. For that i will be using the `nothrow` bit of `CapturedDecl`s. While that bit is already correctly set for some constructs, e.g. `#pragma omp parallel`: https://godbolt.org/z/2La7pv it isn't set for the `#pragma omp sections`, or `#pragma omp section`: https://godbolt.org/z/qZ-EbP If i'm reading [[ https://www.openmp.org/wp-content/uploads/OpenMP-API-Specification-5.0.pdf | `OpenMP Application Programming Interface Version 5.0 November 2018` ]] correctly, they should be, as per `2.8.1 sections Construct`, starting with page 86: * The sections construct is a non-iterative worksharing construct that contains a set of **structured blocks** that are to be distributed among and executed by the threads in a team. Each **structured block** is executed once by one of the threads in the team in the context of its implicit task. * The syntax of the sections construct is as follows: #pragma omp sections [clause[ [,] clause] ... ] new-line { [#pragma omp section new-line] **structured-block** ... * Description Each **structured block** in the sections construct is preceded by a section directive except possibly **the first block**, for which a preceding section directive is optional. * Restrictions • The code enclosed in a sections construct must be a **structured block**. * A throw executed inside a sections region must cause execution to resume within the same section of the sections region, and the same thread that threw the exception must catch it. Reviewers: ABataev, #openmp Reviewed By: ABataev Subscribers: guansong, openmp-commits, cfe-commits Tags: #clang, #openmp Differential Revision: https://reviews.llvm.org/D57585 llvm-svn: 352882
Configuration menu - View commit details
-
Copy full SHA for 9fb113e - Browse repository at this point
Copy the full SHA 9fb113eView commit details -
[X86][SSE] Use PSLLDQ/PSRLDQ to mask out zeroable ends of a shuffle
As suggested on PR40318, this patch uses PSLLDQ/PSRLDQ to lower shuffles to zero out the ends of a vector, leaving a sequential inner section. For pre-SSSE3 we do this for shuffles with zeros at either end (requiring up to 3 shifts), but once PSHUFB is available I've limited this to shuffles with a single zeroable end (2 shifts). Differential Revision: https://reviews.llvm.org/D56784 llvm-svn: 352883
Configuration menu - View commit details
-
Copy full SHA for 8518401 - Browse repository at this point
Copy the full SHA 8518401View commit details -
[SDAG] improve variable names; NFC
The version of FoldConstantArithmetic() that takes arbitrary nodes was confusingly naming those nodes as constants when they might not be; also "Cst" reads like "Cast". llvm-svn: 352884
Configuration menu - View commit details
-
Copy full SHA for 6502b14 - Browse repository at this point
Copy the full SHA 6502b14View commit details -
[AMDGPU] Fix for vector element insertion
Summary: Incorrect code was generated when lowering insertelement operations for vectors with 8 or 16 bit elements. The value being inserted was not adjusted for the position of the element within the 32 bit word and so only the low element within each 32 bit word could receive the intended value. Fixed by simply replicating the value to each element of a congruent vector before the mask and or operation used to update the intended element. A number of affected LIT tests have been updated appropriately. before the mask & or into the intended Reviewers: arsenm, nhaehnle Reviewed By: arsenm Subscribers: llvm-commits, arsenm, kzhuravl, jvesely, wdng, nhaehnle, yaxunl, dstuttard, tpr, t-tye Tags: #llvm Differential Revision: https://reviews.llvm.org/D57588 llvm-svn: 352885
Tim Corringham committedFeb 1, 2019 Configuration menu - View commit details
-
Copy full SHA for fa3e4e5 - Browse repository at this point
Copy the full SHA fa3e4e5View commit details -
Configuration menu - View commit details
-
Copy full SHA for 3724d15 - Browse repository at this point
Copy the full SHA 3724d15View commit details -
Configuration menu - View commit details
-
Copy full SHA for 94b9709 - Browse repository at this point
Copy the full SHA 94b9709View commit details -
[llvm-objcopy][NFC] More error propagation (executeObjcopyOnArchive)
Summary: Replace some reportError() calls with error propagation that was missed from rL352625. Note this also adds an error check during Archive iteration that was being hidden by a different error check before: ``` for (const Archive::Child &Child : Ar.children(Err)) { Expected<std::unique_ptr<Binary>> ChildOrErr = Child.getAsBinary(); if (!ChildOrErr) // This aborts, so Err is never checked reportError(Ar.getFileName(), ChildOrErr.takeError()); ``` Err is being checked after the loop, so during happy runs, everything is fine. But when reportError is changed to return the error instead of aborting, the fact that Err is never checked is now noticed in tests that trigger an error during the loop. Reviewers: jhenderson, dblaikie, alexshap Reviewed By: dblaikie Subscribers: llvm-commits, lhames, jakehehrlich Tags: #llvm Differential Revision: https://reviews.llvm.org/D57462 llvm-svn: 352888
Configuration menu - View commit details
-
Copy full SHA for 18886db - Browse repository at this point
Copy the full SHA 18886dbView commit details -
[DWARF v5] Fix DWARF emitter and consumer to produce/expect a uleb fo…
…r a location description's length. Reviewer: davide, JDevliegere Differential Revision: https://reviews.llvm.org/D57550 llvm-svn: 352889
Configuration menu - View commit details
-
Copy full SHA for 58513b7 - Browse repository at this point
Copy the full SHA 58513b7View commit details -
Update SanitizerCoverage doc regarding the issue with pc-table and gc…
…-sections. Summary: There is a bug for this: https://bugs.llvm.org/show_bug.cgi?id=34636 But it would be also helpful to leave a note in the docs to prevent users from running into issues, e.g. https://crbug.com/926588. Reviewers: morehouse Reviewed By: morehouse Subscribers: cfe-commits, llvm-commits, kcc Tags: #clang Differential Revision: https://reviews.llvm.org/D57474 llvm-svn: 352890
Configuration menu - View commit details
-
Copy full SHA for 1238838 - Browse repository at this point
Copy the full SHA 1238838View commit details -
[llvm-nm] Report '.comment' ELF sections as 'n' instead of '?'
Summary: The previous implementation reported `.comment` sections as '?' GNU uses 'n' which means "The symbol is a debugging symbol." `.note` sections are represented as 'n' too. The test related to this change was updated to CHECK-NEXT to ensure order and that we did not miss any symbols in the dump. Reviewers: jhenderson Reviewed By: jhenderson Subscribers: rupprecht, llvm-commits Differential Revision: https://reviews.llvm.org/D57544 llvm-svn: 352891
Matt Davis authored and Matt Davis committedFeb 1, 2019 Configuration menu - View commit details
-
Copy full SHA for 68fad50 - Browse repository at this point
Copy the full SHA 68fad50View commit details -
[InstCombine] Expand Windows test (NFC)
Add checks for Win64 to existing cases. llvm-svn: 352892
Evandro Menezes committedFeb 1, 2019 Configuration menu - View commit details
-
Copy full SHA for 743ba66 - Browse repository at this point
Copy the full SHA 743ba66View commit details -
gn build: Add a missing dependency from llvm/test to llvm-lit
check-llvm already listed llvm-lit as script which counts as a dep, so running check-llvm worked fine, but `ninja -C out/gn llvm/test` didn't build llvm-lit before if it wasn't already there. llvm-svn: 352893
Configuration menu - View commit details
-
Copy full SHA for 186fcdb - Browse repository at this point
Copy the full SHA 186fcdbView commit details -
Configuration menu - View commit details
-
Copy full SHA for 5c65444 - Browse repository at this point
Copy the full SHA 5c65444View commit details -
Configuration menu - View commit details
-
Copy full SHA for 25b4c4c - Browse repository at this point
Copy the full SHA 25b4c4cView commit details -
[llvm-readobj] Add a flag to dump just the section-to-segment mapping.
Summary: The following patch introduces a new function `printSectionMapping` which is responsible for dumping just the section-to-segment mapping. This patch also introduces a n option `-section-mapping` that outputs that mapping without the program headers. Previously, this functionality was controlled by `printProgramHeaders`, and the output from `-program-headers` has not been changed. I am happy to change the option name, I copied the name that was displayed when outputting the mapping table. Reviewers: khemant, jhenderson, grimar, rupprecht Reviewed By: jhenderson, grimar, rupprecht Subscribers: rupprecht, jhenderson, llvm-commits Differential Revision: https://reviews.llvm.org/D57365 llvm-svn: 352896
Matt Davis authored and Matt Davis committedFeb 1, 2019 Configuration menu - View commit details
-
Copy full SHA for 50ca8ed - Browse repository at this point
Copy the full SHA 50ca8edView commit details -
Configuration menu - View commit details
-
Copy full SHA for 7f29195 - Browse repository at this point
Copy the full SHA 7f29195View commit details -
Fix a bug in the definition of isUnordered on MachineMemOperand
Background: At the moment, we record the AtomicOrdering of an access in the MMO, but also mark any atomic access as volatile in SelectionDAG. GlobalISEL keeps the two separate, but currently doesn't know how to lower an atomic G_LOAD at all. See https://reviews.llvm.org/D57601 for context. The definition used for unordered was only checking volatility, not atomicity. As noted above, all atomic MMOs are currently also volatile, so this is a latent bug only. Copy the definition used in IR, after auditing the two (2) uses of the function to be sure the desired semantics are the same. Differential Revision: https://reviews.llvm.org/D57593 llvm-svn: 352898
Configuration menu - View commit details
-
Copy full SHA for 5503e4f - Browse repository at this point
Copy the full SHA 5503e4fView commit details -
[lldb] Relax libc++ ABI version checking
libc++ has programmable ABI versioning controllable with the _LIBCPP_ABI_VERSION macro. Currently there are at least 3 settings used in real systems (1 as the default, ndk1 for Anroid, Cr for Chromium). Only the 1 and ndk1 cases were handled. This change relaxes the check to allow any ABI version. Differential Revision: https://reviews.llvm.org/D57466 llvm-svn: 352899
Configuration menu - View commit details
-
Copy full SHA for 7ba2d3e - Browse repository at this point
Copy the full SHA 7ba2d3eView commit details -
[llvm-objdump] - llvm-objdump can skip bytes at the end of a section.
Differential Revision: https://reviews.llvm.org/D57549 llvm-svn: 352900
Sid Manning committedFeb 1, 2019 Configuration menu - View commit details
-
Copy full SHA for 5d9c8ad - Browse repository at this point
Copy the full SHA 5d9c8adView commit details -
Revert "Fix the xcode build for r352845."
This reverts commit 72c1213a5e901b80c0f1d2794e5088d7f71a3632. llvm-svn: 352901
Configuration menu - View commit details
-
Copy full SHA for 5c49a3f - Browse repository at this point
Copy the full SHA 5c49a3fView commit details -
Configuration menu - View commit details
-
Copy full SHA for da8fe66 - Browse repository at this point
Copy the full SHA da8fe66View commit details -
Hopefully fix a couple more sphinx doc errors.
These seem to only appear on the buildbot runner, and it looks like we tried to suppress them, but it's not working. Not sure why. llvm-svn: 352903
Configuration menu - View commit details
-
Copy full SHA for 6e75c7e - Browse repository at this point
Copy the full SHA 6e75c7eView commit details -
[InstCombine] Extra null-checking on TFE/LWE support
- If that operand is not ConstantInt, skip enabling TFE/LWE. Differential Revision: https://reviews.llvm.org/D57539 llvm-svn: 352904
Configuration menu - View commit details
-
Copy full SHA for 8b323f5 - Browse repository at this point
Copy the full SHA 8b323f5View commit details -
[libc++] Disentangle the 3 implementations of type_info
Summary: We currently have effectively 3 implementations of type_info: one for the Microsoft ABI, one that does not assume that there's a unique copy of each RTTI in a progran, and one that assumes a unique copy. Those 3 implementations are entangled into the same class with nested ifdefs, which makes it very difficult to understand. Furthermore, the benefit of doing this is rather small since the code that is duplicated across implementations is just a couple of trivial lines. This patch stamps out the 3 versions of type_info explicitly to increase readability. It also explains what's going on with short comments, because it's far from obvious. Reviewers: EricWF, mclow.lists Subscribers: christof, jkorous, dexonsmith Differential Revision: https://reviews.llvm.org/D57606 llvm-svn: 352905
Configuration menu - View commit details
-
Copy full SHA for 6b653fc - Browse repository at this point
Copy the full SHA 6b653fcView commit details -
[OpenMP 5.0] Parsing/sema support for "omp declare mapper" directive.
This patch implements parsing and sema for "omp declare mapper" directive. User defined mapper, i.e., declare mapper directive, is a new feature in OpenMP 5.0. It is introduced to extend existing map clauses for the purpose of simplifying the copy of complex data structures between host and device (i.e., deep copy). An example is shown below: struct S { int len; int *d; }; #pragma omp declare mapper(struct S s) map(s, s.d[0:s.len]) // Memory region that d points to is also mapped using this mapper. Contributed-by: Lingda Li <lildmh@gmail.com> Differential Revision: https://reviews.llvm.org/D56326 llvm-svn: 352906
Configuration menu - View commit details
-
Copy full SHA for 251e148 - Browse repository at this point
Copy the full SHA 251e148View commit details -
gn build: Create regular archives for the sanitizer runtimes.
We'll need to do this eventually if we create an installable package. For now, this lets me use the archives to build Android, whose build system wants to copy the archives to another location. Differential Revision: https://reviews.llvm.org/D57607 llvm-svn: 352907
Configuration menu - View commit details
-
Copy full SHA for a18761a - Browse repository at this point
Copy the full SHA a18761aView commit details -
[InstCombine] Expand Windows test (NFC)
Run checks for Win64 as well. llvm-svn: 352908
Evandro Menezes committedFeb 1, 2019 Configuration menu - View commit details
-
Copy full SHA for c456309 - Browse repository at this point
Copy the full SHA c456309View commit details -
[opaque pointer types] Pass function types to CallInst creation.
This cleans up all CallInst creation in LLVM to explicitly pass a function type rather than deriving it from the pointer's element-type. Differential Revision: https://reviews.llvm.org/D57170 llvm-svn: 352909
Configuration menu - View commit details
-
Copy full SHA for 7976eb5 - Browse repository at this point
Copy the full SHA 7976eb5View commit details -
[opaque pointer types] Pass function types to InvokeInst creation.
This cleans up all InvokeInst creation in LLVM to explicitly pass a function type rather than deriving it from the pointer's element-type. Differential Revision: https://reviews.llvm.org/D57171 llvm-svn: 352910
Configuration menu - View commit details
-
Copy full SHA for d9e85a0 - Browse repository at this point
Copy the full SHA d9e85a0View commit details -
[opaque pointer types] Pass value type to LoadInst creation.
This cleans up all LoadInst creation in LLVM to explicitly pass the value type rather than deriving it from the pointer's element-type. Differential Revision: https://reviews.llvm.org/D57172 llvm-svn: 352911
Configuration menu - View commit details
-
Copy full SHA for 14359ef - Browse repository at this point
Copy the full SHA 14359efView commit details -
[opaque pointer types] Pass value type to GetElementPtr creation.
This cleans up all GetElementPtr creation in LLVM to explicitly pass a value type rather than deriving it from the pointer's element-type. Differential Revision: https://reviews.llvm.org/D57173 llvm-svn: 352913
Configuration menu - View commit details
-
Copy full SHA for 7716075 - Browse repository at this point
Copy the full SHA 7716075View commit details -
[opaque pointer types] Pass function type for CallBase::setCalledFunc…
…tion. Differential Revision: https://reviews.llvm.org/D57174 llvm-svn: 352914
Configuration menu - View commit details
-
Copy full SHA for 291f791 - Browse repository at this point
Copy the full SHA 291f791View commit details -
[DebugInfo] Don't use realpath when looking up debug binary locations.
Summary: Using realpath makes assumptions about build systems that do not always hold true. The debug binary referred to from the .gnu_debuglink should exist in the same directory (or in a .debug directory, etc.), but the files may only exist as symlinks to a differently named files elsewhere, and using realpath causes that lookup to fail. This was added in r189250, and this is basically a revert + regression test case. Reviewers: dblaikie, samsonov, jhenderson Reviewed By: dblaikie Subscribers: llvm-commits, hiraditya Tags: #llvm Differential Revision: https://reviews.llvm.org/D57609 llvm-svn: 352916
Configuration menu - View commit details
-
Copy full SHA for 835df27 - Browse repository at this point
Copy the full SHA 835df27View commit details -
[InstCombine] Expand Windows test (NFC)
Run checks for Win32 as well. llvm-svn: 352917
Evandro Menezes committedFeb 1, 2019 Configuration menu - View commit details
-
Copy full SHA for d91776a - Browse repository at this point
Copy the full SHA d91776aView commit details -
Configuration menu - View commit details
-
Copy full SHA for 614dd19 - Browse repository at this point
Copy the full SHA 614dd19View commit details -
Don't use ASTContext in DeclOpenMP.h because it's still incomplete.
llvm-svn: 352919
Configuration menu - View commit details
-
Copy full SHA for de9ffab - Browse repository at this point
Copy the full SHA de9ffabView commit details -
[AMDGPU] Mark test functions with hidden visibility
Prepare for future patch which affects codegen for calls to preemptible functions. Differential Revision: https://reviews.llvm.org/D57605 llvm-svn: 352920
Configuration menu - View commit details
-
Copy full SHA for afc24ed - Browse repository at this point
Copy the full SHA afc24edView commit details -
[ubsan] Make suppressions.cpp test pass for me on Windows
The test seems to be failing because the module suppression file contains a colon. I found that it was sufficient to just use the basename of the suppression file. While I was here, I noticed that we don't implement IsAbsolutePath for Windows, so I added it. llvm-svn: 352921
Configuration menu - View commit details
-
Copy full SHA for 33706e3 - Browse repository at this point
Copy the full SHA 33706e3View commit details -
[X86][AVX] Add VMOVDDUP-VPBROADCASTQ execution domain mapping
Noticed in D57514. Differential Revision: https://reviews.llvm.org/D57519 llvm-svn: 352922
Configuration menu - View commit details
-
Copy full SHA for e95550f - Browse repository at this point
Copy the full SHA e95550fView commit details -
[COFF, ARM64] Fix localaddress to handle stack realignment and variab…
…le size objects Summary: This fixes using the correct stack registers for SEH when stack realignment is needed or when variable size objects are present. Reviewers: rnk, efriedma, ssijaric, TomTan Reviewed By: rnk, efriedma Subscribers: javed.absar, kristof.beyls, llvm-commits Differential Revision: https://reviews.llvm.org/D57183 llvm-svn: 352923
Mandeep Singh Grang committedFeb 1, 2019 Configuration menu - View commit details
-
Copy full SHA for 70d484d - Browse repository at this point
Copy the full SHA 70d484dView commit details -
Factor out duplication between ExprIterator and ConstExprIterator.
This also exposes a more general iterator cast mechanism suitable for use in http://reviews.llvm.org/D56571. llvm-svn: 352925
Configuration menu - View commit details
-
Copy full SHA for 259e1bd - Browse repository at this point
Copy the full SHA 259e1bdView commit details -
add a test and a couple minor bug fixes for the implicit-signed-integ…
…er-truncation sanitizer. This is PR#40566 llvm-svn: 352926
Configuration menu - View commit details
-
Copy full SHA for 2e719bc - Browse repository at this point
Copy the full SHA 2e719bcView commit details -
Improve diagnostic to tell you a type is incomplete.
I recently ran into this code: ``` \#include <iostream> void foo(const std::string &s, const std::string& = ""); \#include <string> void test() { foo(""); } ``` The diagnostic produced said it can't bind char[1] to std::string const&. It didn't mention std::string is incomplete. The user had to infer that. This patch causes the diagnostic to now say "incomplete type". llvm-svn: 352927
Configuration menu - View commit details
-
Copy full SHA for 1147f71 - Browse repository at this point
Copy the full SHA 1147f71View commit details -
[COFF] Fix crashes when writing a PDB after adding thunks.
When writing a PDB, the OutputSection of all chunks need to be set. The thunks are added directly to OutputSection after the normal machinery that sets it for all other chunks. This fixes part of PR40467. Differential Revision: https://reviews.llvm.org/D57574 llvm-svn: 352928
Configuration menu - View commit details
-
Copy full SHA for b2b0cab - Browse repository at this point
Copy the full SHA b2b0cabView commit details -
[COFF] Create range extension thunks for ARM64
On ARM64, this is normally necessary only after a module exceeds 128 MB in size (while the limit for thumb is 16 MB). For conditional branches, the range limit is only 1 MB though (the same as for thumb), and for the tbz instruction, the range is only 32 KB, which allows for a test much smaller than the full 128 MB. This fixes PR40467. Differential Revision: https://reviews.llvm.org/D57575 llvm-svn: 352929
Configuration menu - View commit details
-
Copy full SHA for c9f4d25 - Browse repository at this point
Copy the full SHA c9f4d25View commit details -
[WebAssembly] Add an import_field function attribute
This is similar to import_module, but sets the import field name instead. By default, the import field name is the same as the C/asm/.o symbol name. However, there are situations where it's useful to have it be different. For example, suppose I have a wasm API with a module named "pwsix" and a field named "read". There's no risk of namespace collisions with user code at the wasm level because the generic name "read" is qualified by the module name "pwsix". However in the C/asm/.o namespaces, the module name is not used, so if I have a global function named "read", it is intruding on the user's namespace. With the import_field module, I can declare my function (in libc) to be "__read", and then set the wasm import module to be "pwsix" and the wasm import field to be "read". So at the C/asm/.o levels, my symbol is outside the user namespace. Differential Revision: https://reviews.llvm.org/D57602 llvm-svn: 352930
Dan Gohman committedFeb 1, 2019 Configuration menu - View commit details
-
Copy full SHA for cae8459 - Browse repository at this point
Copy the full SHA cae8459View commit details -
[WebAssembly] Add codegen support for the import_field attribute
This adds the LLVM side of https://reviews.llvm.org/D57602 -- the import_field attribute. See that patch for details. Differential Revision: https://reviews.llvm.org/D57603 llvm-svn: 352931
Dan Gohman committedFeb 1, 2019 Configuration menu - View commit details
-
Copy full SHA for f726e44 - Browse repository at this point
Copy the full SHA f726e44View commit details -
[Test] Update file w/update_test_checks.py to make a follow on change…
… obvious llvm-svn: 352932
Configuration menu - View commit details
-
Copy full SHA for 05fc7ed - Browse repository at this point
Copy the full SHA 05fc7edView commit details -
Revert "[AST][OpenMP] OpenMP Sections / Section constructs contain St…
…ructured blocks" Further reviews (D57594, D57615) have revealed that this was not reviewed, and that the differential's description was not read during the review, thus rendering this commit invalid. This reverts commit r352882. llvm-svn: 352933
Configuration menu - View commit details
-
Copy full SHA for a21f342 - Browse repository at this point
Copy the full SHA a21f342View commit details -
Configuration menu - View commit details
-
Copy full SHA for 39ad187 - Browse repository at this point
Copy the full SHA 39ad187View commit details -
[WebAssembly] Fix ImportName's position in this test.
This is a follow-up to r352930. llvm-svn: 352936
Dan Gohman committedFeb 1, 2019 Configuration menu - View commit details
-
Copy full SHA for b392ac9 - Browse repository at this point
Copy the full SHA b392ac9View commit details -
[CodeGen] Be as conservative about atomic accesses as for volatile
Background: At the moment, we record the AtomicOrdering of an access in the MMO, but also mark any atomic access as volatile in SelectionDAG. I'm working towards separating that. See https://reviews.llvm.org/D57601 for context. Update all usages of isVolatile in lib/CodeGen to preserve behaviour once atomic MMOs stop being also volatile. This is NFC in it's current form, but is essential for correctness once we make that final change. It useful to keep in mind that AtomicSDNode is not a parent of LoadSDNode, StoreSDNode, or LSBaseSDNode. As a result, any call to isVolatile on one of those static types doesn't need a companion isAtomic check. We should probably adjust that class hierarchy long term, but for now, that seperation is useful. I'm deliberately being conservative about handling. I want the change to stop adding volatile to be NFC itself, and then will work through places where we can be less conservative for atomics one by one in separate changes w/tests. Differential Revision: https://reviews.llvm.org/D57596 llvm-svn: 352937
Configuration menu - View commit details
-
Copy full SHA for 00056ed - Browse repository at this point
Copy the full SHA 00056edView commit details -
[analyzer] Hotfix for RetainCountChecker: assert was too strong.
Bridged casts can happen to non-CF objects as well. llvm-svn: 352938
George Karpenkov committedFeb 1, 2019 Configuration menu - View commit details
-
Copy full SHA for 77b3530 - Browse repository at this point
Copy the full SHA 77b3530View commit details -
[BPF] [BTF] Process FileName with absolute path correctly
In IR, sometimes the following attributes for DIFile may be generated: filename: /home/yhs/test.c directory: /tmp The /tmp may represent the working directory of the compilation process. In such cases, since filename is with absolute path, the directory should be ignored by BTF. The filename alone is enough to get the source. Acked-by: Alexei Starovoitov <ast@kernel.org> Signed-off-by: Yonghong Song <yhs@fb.com> llvm-svn: 352939
Configuration menu - View commit details
-
Copy full SHA for 5233fb8 - Browse repository at this point
Copy the full SHA 5233fb8View commit details -
Configuration menu - View commit details
-
Copy full SHA for dc1e778 - Browse repository at this point
Copy the full SHA dc1e778View commit details -
Revert "[BPF] [BTF] Process FileName with absolute path correctly"
This reverts commit r352939. Some tests failed. Revert to unblock others. llvm-svn: 352941
Configuration menu - View commit details
-
Copy full SHA for 329010e - Browse repository at this point
Copy the full SHA 329010eView commit details -
Handle cases where the dirent::d_type macros aren't defined
llvm-svn: 352942
Configuration menu - View commit details
-
Copy full SHA for 1bccafe - Browse repository at this point
Copy the full SHA 1bccafeView commit details
Commits on Feb 2, 2019
-
[ELF] Default to --no-allow-shlib-undefined for executables
Summary: This follows the ld.bfd/gold behavior. The error check is useful as it captures a common type of ld.so undefined symbol errors as link-time errors: // a.cc => a.so (not linked with -z defs) void f(); // f is undefined void g() { f(); } // b.cc => executable with a DT_NEEDED entry on a.so void g(); int main() { g(); } // ld.so errors when g() is executed (lazy binding) or when the program is started (-z now) // symbol lookup error: ... undefined symbol: f Reviewers: ruiu, grimar, pcc, espindola Reviewed By: ruiu Subscribers: llvm-commits, emaste, arichardson Tags: #llvm Differential Revision: https://reviews.llvm.org/D57569 llvm-svn: 352943
Configuration menu - View commit details
-
Copy full SHA for ae02943 - Browse repository at this point
Copy the full SHA ae02943View commit details -
[llvm-objcopy] Add ability to copy MachO object files
This diff implements first bits for copying (without modification) MachO object files. Test plan: make check-all Differential revision: https://reviews.llvm.org/D54674 llvm-svn: 352944
Configuration menu - View commit details
-
Copy full SHA for d911ed1 - Browse repository at this point
Copy the full SHA d911ed1View commit details -
[AutoUpgrade] Fix AutoUpgrade for x86.seh.recoverfp
Summary: This fixes the bug in https://reviews.llvm.org/D56747#inline-502711. Reviewers: efriedma Reviewed By: efriedma Subscribers: javed.absar, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D57614 llvm-svn: 352945
Mandeep Singh Grang committedFeb 2, 2019 Configuration menu - View commit details
-
Copy full SHA for 2be4eab - Browse repository at this point
Copy the full SHA 2be4eabView commit details -
Remove redundant FunctionDecl argument from a couple functions.
This argument was added in r254554 in order to support the pass_object_size attribute. However, in r296076, the attribute's presence is now also represented in FunctionProtoType's ExtParameterInfo, and thus it's unnecessary to pass along a separate FunctionDecl. The functions modified are: RequiredArgs::forPrototype{,Plus}, and CodeGenTypes::ConvertFunctionType. After this, it's also (again) unnecessary to have a separate ConvertFunctionType function ConvertType, so convert callers back to the latter, leaving the former as an internal helper function. llvm-svn: 352946
Configuration menu - View commit details
-
Copy full SHA for 916db65 - Browse repository at this point
Copy the full SHA 916db65View commit details -
[llvm-objcopy] Fix triples in macho tests.
Update triples used by the macho tests to fix some buildbots. llvm-svn: 352947
Configuration menu - View commit details
-
Copy full SHA for 7d53675 - Browse repository at this point
Copy the full SHA 7d53675View commit details -
[ASan] Do not instrument other runtime functions with `__asan_handle_…
…no_return` Summary: Currently, ASan inserts a call to `__asan_handle_no_return` before every `noreturn` function call/invoke. This is unnecessary for calls to other runtime funtions. This patch changes ASan to skip instrumentation for functions calls marked with `!nosanitize` metadata. Reviewers: TODO Differential Revision: https://reviews.llvm.org/D57489 llvm-svn: 352948
Configuration menu - View commit details
-
Copy full SHA for f82d892 - Browse repository at this point
Copy the full SHA f82d892View commit details -
[Sema][ObjC] Allow declaring ObjC pointer members with non-trivial
ownership qualifications in C++ unions under ARC. An ObjC pointer member with non-trivial ownership qualifications causes all of the defaulted special functions of the enclosing union to be defined as deleted, except when the member has an in-class initializer, the default constructor isn't defined as deleted. rdar://problem/34213306 Differential Revision: https://reviews.llvm.org/D57438 llvm-svn: 352949
Configuration menu - View commit details
-
Copy full SHA for a504897 - Browse repository at this point
Copy the full SHA a504897View commit details -
[llvm-objcopy] Temporarily limit one test to darwin
Some triples in llvm-mc appear to be unavailable on some buildbots. To please those buildbots we temporarily limit the test to darwin (where the required triple is guranteed to be available) until we find the right solution. llvm-svn: 352950
Configuration menu - View commit details
-
Copy full SHA for d078b4e - Browse repository at this point
Copy the full SHA d078b4eView commit details -
Bump minimum toolchain version
Summary: The RFC on moving past C++11 got good traction: http://lists.llvm.org/pipermail/llvm-dev/2019-January/129452.html This patch therefore bumps the toolchain versions according to our policy: llvm.org/docs/DeveloperPolicy.html#toolchain Subscribers: mgorny, jkorous, dexonsmith, llvm-commits, mehdi_amini, jyknight, rsmith, chandlerc, smeenai, hans, reames, lattner, lhames, erichkeane Differential Revision: https://reviews.llvm.org/D57264 llvm-svn: 352951
Configuration menu - View commit details
-
Copy full SHA for c9a69ac - Browse repository at this point
Copy the full SHA c9a69acView commit details -
[BPF] [BTF] Process FileName with absolute path correctly
In IR, sometimes the following attributes for DIFile may be generated: filename: /home/yhs/test.c directory: /tmp The /tmp may represent the working directory of the compilation process. In such cases, since filename is with absolute path, the directory should be ignored by BTF. The filename alone is enough to get the source. Acked-by: Alexei Starovoitov <ast@kernel.org> Signed-off-by: Yonghong Song <yhs@fb.com> llvm-svn: 352952
Configuration menu - View commit details
-
Copy full SHA for fa36540 - Browse repository at this point
Copy the full SHA fa36540View commit details -
[Clangd] textDocument/definition and textDocument/declaration "bounce…
…" between definition and declaration location when they are distinct. Summary: This helps minimize the disruption of not returning declarations as part of a find-definition response (r352864). Reviewers: hokein Subscribers: ioeric, MaskRay, jkorous, arphaman, kadircet, ilya-biryukov Tags: #clang Differential Revision: https://reviews.llvm.org/D57580 llvm-svn: 352953
Configuration menu - View commit details
-
Copy full SHA for 0dbab7f - Browse repository at this point
Copy the full SHA 0dbab7fView commit details -
Revert "Bump minimum toolchain version"
Reverting D57264 again, it looks like we're down to two bots that need fixing: polly-amd64-linux polly-arm-linux They both have old versions of libstdc++ and recent clang. llvm-svn: 352954
Configuration menu - View commit details
-
Copy full SHA for 115b64b - Browse repository at this point
Copy the full SHA 115b64bView commit details -
[X86][SSE]: Adding full coverage of MC encoding tests for the SSE isa…
… sets.<NFC> Summary: NFC. Adding MC regressions tests to cover all the SSE ISA sets as follows: SSE, SSE2, SSE3, SSE4, SSE42, SSEMXCSR, SSE_PREFETCH, SSSE3 This patch is part of a larger task to cover MC encoding of all X86 ISA Sets. See revision: https://reviews.llvm.org/D39952 Patch by Gadi Haber and Wang Tianqing Reviewers: RKSimon, zvi, craig.topper, AndreiGrischenko, gadi.haber, LuoYuanke Reviewed By: craig.topper Subscribers: jfb, llvm-commits Differential Revision: https://reviews.llvm.org/D40387 llvm-svn: 352955
Configuration menu - View commit details
-
Copy full SHA for d3107a7 - Browse repository at this point
Copy the full SHA d3107a7View commit details -
[ASTImporter] Fix up test that only works on X86.
The test will fail if the default target triple is not X86, even if the host platform is. So move the check into the test at runtime. llvm-svn: 352956
Configuration menu - View commit details
-
Copy full SHA for 1be906a - Browse repository at this point
Copy the full SHA 1be906aView commit details -
Configuration menu - View commit details
-
Copy full SHA for 44d6f9e - Browse repository at this point
Copy the full SHA 44d6f9eView commit details -
[LCSSA] Add expensive verification of LCSSA form for sub-loops.
This assertion makes sure all sub-loops are in LCSSA form before bringing their parent in LCSSA form. This precondition was added to formLCSSA in D56848. Reviewers: davide, efriedma, mzolotukhin Reviewed By: davide Differential Revision: https://reviews.llvm.org/D56921 llvm-svn: 352958
Configuration menu - View commit details
-
Copy full SHA for 509b48a - Browse repository at this point
Copy the full SHA 509b48aView commit details -
[analyzer][UninitializedObjectChecker] New flag to ignore guarded uni…
…nitialized fields This patch is an implementation of the ideas discussed on the mailing list[1]. The idea is to somewhat heuristically guess whether the field that was confirmed to be uninitialized is actually guarded with ifs, asserts, switch/cases and so on. Since this is a syntactic check, it is very much prone to drastically reduce the amount of reports the checker emits. The reports however that do not get filtered out though have greater likelihood of them manifesting into actual runtime errors. [1] http://lists.llvm.org/pipermail/cfe-dev/2018-September/059255.html Differential Revision: https://reviews.llvm.org/D51866 llvm-svn: 352959
Configuration menu - View commit details
-
Copy full SHA for ffe93a1 - Browse repository at this point
Copy the full SHA ffe93a1View commit details -
[LCSSA] Handle case with single new PHI faster.
If there is only a single available value, all uses must be dominated by the single value and there is no need to search for a reaching definition. This drastically speeds up LCSSA in some cases. For the test case from PR37202, it speeds up LCSSA construction by 4 times. Time-passes without this patch for test case from PR37202: Total Execution Time: 29.9285 seconds (29.9276 wall clock) ---User Time--- --System Time-- --User+System-- ---Wall Time--- --- Name --- 5.2786 ( 17.7%) 0.0021 ( 1.2%) 5.2806 ( 17.6%) 5.2808 ( 17.6%) Unswitch loops 4.3739 ( 14.7%) 0.0303 ( 18.1%) 4.4042 ( 14.7%) 4.4042 ( 14.7%) Loop-Closed SSA Form Pass 4.2658 ( 14.3%) 0.0192 ( 11.5%) 4.2850 ( 14.3%) 4.2851 ( 14.3%) Loop-Closed SSA Form Pass #2 2.2307 ( 7.5%) 0.0013 ( 0.8%) 2.2320 ( 7.5%) 2.2318 ( 7.5%) Loop Invariant Code Motion 2.0888 ( 7.0%) 0.0012 ( 0.7%) 2.0900 ( 7.0%) 2.0897 ( 7.0%) Unroll loops 1.6761 ( 5.6%) 0.0013 ( 0.8%) 1.6774 ( 5.6%) 1.6774 ( 5.6%) Value Propagation 1.3686 ( 4.6%) 0.0029 ( 1.8%) 1.3716 ( 4.6%) 1.3714 ( 4.6%) Induction Variable Simplification 1.1457 ( 3.8%) 0.0010 ( 0.6%) 1.1468 ( 3.8%) 1.1468 ( 3.8%) Loop-Closed SSA Form Pass #4 1.1384 ( 3.8%) 0.0005 ( 0.3%) 1.1389 ( 3.8%) 1.1389 ( 3.8%) Loop-Closed SSA Form Pass #6 1.1360 ( 3.8%) 0.0027 ( 1.6%) 1.1387 ( 3.8%) 1.1387 ( 3.8%) Loop-Closed SSA Form Pass #5 1.1331 ( 3.8%) 0.0010 ( 0.6%) 1.1341 ( 3.8%) 1.1340 ( 3.8%) Loop-Closed SSA Form Pass #3 Time passes with this patch Total Execution Time: 19.2802 seconds (19.2813 wall clock) ---User Time--- --System Time-- --User+System-- ---Wall Time--- --- Name --- 4.4234 ( 23.2%) 0.0038 ( 2.0%) 4.4272 ( 23.0%) 4.4273 ( 23.0%) Unswitch loops 2.3828 ( 12.5%) 0.0020 ( 1.1%) 2.3848 ( 12.4%) 2.3847 ( 12.4%) Unroll loops 1.8714 ( 9.8%) 0.0020 ( 1.1%) 1.8734 ( 9.7%) 1.8735 ( 9.7%) Loop Invariant Code Motion 1.7973 ( 9.4%) 0.0022 ( 1.2%) 1.7995 ( 9.3%) 1.8003 ( 9.3%) Value Propagation 1.4010 ( 7.3%) 0.0033 ( 1.8%) 1.4043 ( 7.3%) 1.4044 ( 7.3%) Induction Variable Simplification 0.9978 ( 5.2%) 0.0244 ( 13.1%) 1.0222 ( 5.3%) 1.0224 ( 5.3%) Loop-Closed SSA Form Pass #2 0.9611 ( 5.0%) 0.0257 ( 13.8%) 0.9868 ( 5.1%) 0.9868 ( 5.1%) Loop-Closed SSA Form Pass 0.5856 ( 3.1%) 0.0015 ( 0.8%) 0.5871 ( 3.0%) 0.5869 ( 3.0%) Unroll loops #2 0.4132 ( 2.2%) 0.0012 ( 0.7%) 0.4145 ( 2.1%) 0.4143 ( 2.1%) Loop Invariant Code Motion #3 Reviewers: efriedma, davide, mzolotukhin Reviewed By: efriedma Differential Revision: https://reviews.llvm.org/D57033 llvm-svn: 352960
Configuration menu - View commit details
-
Copy full SHA for dd2ef0a - Browse repository at this point
Copy the full SHA dd2ef0aView commit details -
[SDAG] Add SDNode/SDValue getConstantOperandAPInt helper. NFCI.
We already have the getConstantOperandVal helper which returns a uint64_t, but along comes the fuzzer and inserts a i128 -1 constant or something and the whole thing asserts....... I've updated a few obvious cases, and tried to make use of the const reference where possible, but there's more to do. A number of existing oss-fuzz tickets should be fixed if we start using APInt and perform value clamping where necessary. llvm-svn: 352961
Configuration menu - View commit details
-
Copy full SHA for bd42f97 - Browse repository at this point
Copy the full SHA bd42f97View commit details -
[X86][AVX] Enable INSERT_SUBVECTOR(SRC0, SHUFFLE(SRC1)) shuffle combi…
…ning Push the insert_subvector up through the shuffle operands to help find more cross-lane shuffles. The is exposes a couple of minor issues that will be fixed shortly: Missed broadcast folds - we have a mixture of vzext_load lengths that need cleaning up combine-sdiv.ll - AVX1 SimplifyDemandedVectorElts failure (hits max depth due to a couple of extra bitcasts). llvm-svn: 352963
Configuration menu - View commit details
-
Copy full SHA for dbf302c - Browse repository at this point
Copy the full SHA dbf302cView commit details -
Configuration menu - View commit details
-
Copy full SHA for e546b53 - Browse repository at this point
Copy the full SHA e546b53View commit details -
[libunwind] Remove the remote unwinding support
This is unfinished, unused and incomplete. This could be brought back in the future if there's a desire to build a more complete implementation, but at the moment it's just bitrotting. Differential Revision: https://reviews.llvm.org/D57252 llvm-svn: 352965
Configuration menu - View commit details
-
Copy full SHA for 368c02e - Browse repository at this point
Copy the full SHA 368c02eView commit details -
[libunwind] Provide placement new definition
While Clang automatically generates the code for placement new, g++ doesn't do that so we need to provide our own definition. Differential Revision: https://reviews.llvm.org/D57455 llvm-svn: 352966
Configuration menu - View commit details
-
Copy full SHA for 5745e90 - Browse repository at this point
Copy the full SHA 5745e90View commit details -
Configuration menu - View commit details
-
Copy full SHA for cf07b09 - Browse repository at this point
Copy the full SHA cf07b09View commit details -
[clang-tidy] Make google-objc-function-naming ignore implicit functio…
…ns 🙈 Summary: Implicit functions are outside the control of source authors and should be exempt from style restrictions. Tested via running clang tools tests. Reviewers: aaron.ballman Reviewed By: aaron.ballman Subscribers: xazax.hun, cfe-commits Differential Revision: https://reviews.llvm.org/D57207 llvm-svn: 352968
Configuration menu - View commit details
-
Copy full SHA for b08a2d4 - Browse repository at this point
Copy the full SHA b08a2d4View commit details -
Revert rCTE352968 due to compilation failures 💥
llvm-svn: 352969
Configuration menu - View commit details
-
Copy full SHA for 0033112 - Browse repository at this point
Copy the full SHA 0033112View commit details -
Move the feature test macros script to the utils directory.
It doesn't make a lot of sense to keep it with the tests, deep into the test suite directonies. llvm-svn: 352970
Configuration menu - View commit details
-
Copy full SHA for 508da41 - Browse repository at this point
Copy the full SHA 508da41View commit details -
Replace uses of %T with %t in from previous frontend test differential
After committing a change I had made to a few frontend tests, it was pointed out to me that %T is being deprecated in LLVM in favor of %t. This change simply converts usages of %T to %t while maintaining the integrity of the test. Previous revision where this discussion took place: https://reviews.llvm.org/D50563 Differential Revision: https://reviews.llvm.org/D57592 Patch from Justice Adams <justice.adams@sony.com>! llvm-svn: 352971
Configuration menu - View commit details
-
Copy full SHA for c16cc77 - Browse repository at this point
Copy the full SHA c16cc77View commit details -
[NewPM] Add support for new-PM plugins to clang
Summary: This adds support for new-PM plugin loading to clang. The option `-fpass-plugin=` may be used to specify a dynamic shared object file that adheres to the PassPlugin API. Tested: created simple plugin that registers an EP callback; with optimization level > 0, the pass is run as expected. Committed on behalf of Marco Elver Differential Revision: https://reviews.llvm.org/D56935 llvm-svn: 352972
Configuration menu - View commit details
-
Copy full SHA for e3f105c - Browse repository at this point
Copy the full SHA e3f105cView commit details -
Configuration menu - View commit details
-
Copy full SHA for cbaada6 - Browse repository at this point
Copy the full SHA cbaada6View commit details -
Configuration menu - View commit details
-
Copy full SHA for 2491f82 - Browse repository at this point
Copy the full SHA 2491f82View commit details -
AMDGPU/GlobalISel: Legalize constant for pointer types
llvm-svn: 352975
Configuration menu - View commit details
-
Copy full SHA for 2065c94 - Browse repository at this point
Copy the full SHA 2065c94View commit details -
Configuration menu - View commit details
-
Copy full SHA for 58f9d3d - Browse repository at this point
Copy the full SHA 58f9d3dView commit details -
AMDGPU/GlobalISel: Avoid reporting illegal extloads as legal
This avoids breaking a test in a future commit. llvm-svn: 352977
Configuration menu - View commit details
-
Copy full SHA for eb2603c - Browse repository at this point
Copy the full SHA eb2603cView commit details -
GlobalISel: Implement widenScalar for G_EXTRACT vector sources
Handle the basic element extract case. llvm-svn: 352978
Configuration menu - View commit details
-
Copy full SHA for 0e5d856 - Browse repository at this point
Copy the full SHA 0e5d856View commit details
Commits on Feb 3, 2019
-
GlobalISel: Implement widenScalar for G_UNMERGE_VALUES
For the scalar case only. Also move the similar G_MERGE_VALUES handling to a separate function and cleanup to make them look more similar. llvm-svn: 352979
Configuration menu - View commit details
-
Copy full SHA for 888aa5d - Browse repository at this point
Copy the full SHA 888aa5dView commit details -
Fix handling of usual deallocation functions in various configuratios.
Clang allows users to enable or disable various types of allocation and deallocation regardless of the C++ dialect. When extended new/delete overloads are enabled in older dialects, we need to treat them as if they're usual. Also, disabling one usual deallocation form shouldn't disable any others. For example, disabling aligned allocation in C++2a should have no effect on destroying delete. llvm-svn: 352980
Configuration menu - View commit details
-
Copy full SHA for 24a2a48 - Browse repository at this point
Copy the full SHA 24a2a48View commit details -
[InstSimplify] Missed optimization in math expression: log10(pow(10.0…
…,x)) == x, log2(pow(2.0,x)) == x Summary: This patch enables folding following instructions under -ffast-math flag: log10(pow(10.0,x)) -> x, log2(pow(2.0,x)) -> x Reviewers: hfinkel, spatel, efriedma, craig.topper, zvi, majnemer, lebedev.ri Reviewed By: spatel, lebedev.ri Subscribers: lebedev.ri, llvm-commits Differential Revision: https://reviews.llvm.org/D41940 llvm-svn: 352981
Configuration menu - View commit details
-
Copy full SHA for aaa709f - Browse repository at this point
Copy the full SHA aaa709fView commit details -
Configuration menu - View commit details
-
Copy full SHA for b21ed3c - Browse repository at this point
Copy the full SHA b21ed3cView commit details -
Configuration menu - View commit details
-
Copy full SHA for 365e164 - Browse repository at this point
Copy the full SHA 365e164View commit details -
[X86] Lower ISD::UADDO to use the Z flag instead of C flag when the R…
…HS is a constant 1 to encourage INC formation. Summary: Add an additional combine to combineCarryThroughADD to reverse it back to the C flag to avoid regressions. I believe this catches the cases that D57547 got. Reviewers: RKSimon, spatel Reviewed By: spatel Subscribers: javed.absar, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D57637 llvm-svn: 352984
Configuration menu - View commit details
-
Copy full SHA for 950ca19 - Browse repository at this point
Copy the full SHA 950ca19View commit details -
[X86] Print %st(0) as %st to match what gcc inline asm uses as the cl…
…obber name to make MS inline asm work correctly Summary: When calculating clobbers for MS style inline assembly we fail if the asm clobbers stack top because we print st(0) and try to pass it through the gcc register name check. This was found with when I attempted to make a emms/femms clobber all ST registers. If you use emms/femms in MS inline asm we would try to use st(0) as the clobber name but clang would think that wasn't a valid clobber name. This also matches what objdump disassembly prints. It's also what is printed by gcc -S. Reviewers: RKSimon, rnk, efriedma, spatel, andreadb, lebedev.ri Reviewed By: rnk Subscribers: eraman, gbedwell, lebedev.ri, llvm-commits Differential Revision: https://reviews.llvm.org/D57621 llvm-svn: 352985
Configuration menu - View commit details
-
Copy full SHA for 5a570dd - Browse repository at this point
Copy the full SHA 5a570ddView commit details -
[DA][NewPM] Handle transitive dependencies in the new-pm version of DA
Summary: The analysis result of DA caches pointers to AA, SCEV, and LI, but it never checks for their invalidation. Fix that. Reviewers: chandlerc, dmgreen, bogner Reviewed By: dmgreen Subscribers: hiraditya, bollu, javed.absar, llvm-commits Differential Revision: https://reviews.llvm.org/D56381 llvm-svn: 352986
Configuration menu - View commit details
-
Copy full SHA for 9438585 - Browse repository at this point
Copy the full SHA 9438585View commit details -
[PowerPC] add tests for saturating add; NFC
This is copied from the existing test files for x86/AArch. llvm-svn: 352987
Configuration menu - View commit details
-
Copy full SHA for 359a973 - Browse repository at this point
Copy the full SHA 359a973View commit details -
[CGP] refactor optimizeCmpExpression (NFCI)
This is not truly NFC because we are bailing out without a TLI now. That should not be a real concern though because there should be a TLI in any real-world scenario. That seems better than passing around a pointer and then checking it for null-ness all over the place. The motivation is to fix what appears to be an unintended restriction on the uaddo transform - hasMultipleConditionRegisters() shouldn't be reason to limit the transform. llvm-svn: 352988
Configuration menu - View commit details
-
Copy full SHA for 00fcc74 - Browse repository at this point
Copy the full SHA 00fcc74View commit details -
[AST] Extract ASTNodeTraverser class from ASTDumper
Summary: This new traverser class allows clients to re-use the traversal logic which was previously part of ASTDumper. This means that alternative visit logic may be implemented, such as * Dump to alternative data formats such as JSON * Implement AST Matcher parent/child visitation matching AST dumps Reviewers: aaron.ballman Subscribers: jfb, cfe-commits Differential Revision: https://reviews.llvm.org/D57472 llvm-svn: 352989
Configuration menu - View commit details
-
Copy full SHA for c493301 - Browse repository at this point
Copy the full SHA c493301View commit details -
Configuration menu - View commit details
-
Copy full SHA for e9a136b - Browse repository at this point
Copy the full SHA e9a136bView commit details -
Configuration menu - View commit details
-
Copy full SHA for 22f538c - Browse repository at this point
Copy the full SHA 22f538cView commit details -
[CGP] move test file to prevent bot failures
The test specifiies the triple, so it needs to be in the x86 directory in case a bot has been configured without the x86 target. llvm-svn: 352992
Configuration menu - View commit details
-
Copy full SHA for b961bd6 - Browse repository at this point
Copy the full SHA b961bd6View commit details -
[x86] add CGP uaddo test with weird type; NFC
There's probably no reason to try this transform for an obviously unsupported op. llvm-svn: 352993
Configuration menu - View commit details
-
Copy full SHA for 3d6ecfc - Browse repository at this point
Copy the full SHA 3d6ecfcView commit details -
[X86][AVX] More aggressively simplify BROADCAST source operand
Aim to use scalar source or lowest 128-bit vector directly. We're still missing some VZMOVL_LOAD combines. llvm-svn: 352994
Configuration menu - View commit details
-
Copy full SHA for a2a3e5b - Browse repository at this point
Copy the full SHA a2a3e5bView commit details -
[objc-gnustep] Fix encoding of ivar size for _Bool.
llvm-svn: 352995
David Chisnall committedFeb 3, 2019 Configuration menu - View commit details
-
Copy full SHA for ccc4286 - Browse repository at this point
Copy the full SHA ccc4286View commit details -
Hot fix two test regressions (%T vs %t)
Different Unix "errno" values are returned for the following scenarios: $ echo test > /tmp/existingFile/impossibleDir/impossibleFile "Not a directory" $ echo test > /tmp/nonexistentDir/impossibleFile "No such file or directory" This fixes the regression introduced by r352971 / D57592. llvm-svn: 352996
Configuration menu - View commit details
-
Copy full SHA for 4a0a64a - Browse repository at this point
Copy the full SHA 4a0a64aView commit details -
[X86][AVX] Support shuffle combining for VPMOVZX with smaller vector …
…sources llvm-svn: 352997
Configuration menu - View commit details
-
Copy full SHA for 18b73a6 - Browse repository at this point
Copy the full SHA 18b73a6View commit details -
[PatternMatch] add special-case uaddo matching for increment-by-one (…
…2nd try) This is the most important uaddo problem mentioned in PR31754: https://bugs.llvm.org/show_bug.cgi?id=31754 ...but that was overcome in x86 codegen with D57637. That patch also corrects the inc vs. add regressions seen with the previous attempt at this. Still, we want to make this matcher complete, so we can potentially canonicalize the pattern even if it's an 'add 1' operation. Pattern matching, however, shouldn't assume that we have canonicalized IR, so we match 4 commuted variants of uaddo. There's also a test with a crazy type to show that the existing CGP transform based on this matcher is not limited by target legality checks. I'm not sure if the Hexagon diff means the test is no longer testing what it intended to test, but that should be solvable in a follow-up. Differential Revision: https://reviews.llvm.org/D57516 llvm-svn: 352998
Configuration menu - View commit details
-
Copy full SHA for 837552f - Browse repository at this point
Copy the full SHA 837552fView commit details -
[X86][AVX] Support shuffle combining for VBROADCAST with smaller vect…
…or sources getTargetShuffleMask can only do this safely if we're extracting the lowest subvector from a vector of the same result type. llvm-svn: 352999
Configuration menu - View commit details
-
Copy full SHA for 1fce5a8 - Browse repository at this point
Copy the full SHA 1fce5a8View commit details -
[libFuzzer][Windows] Reenable passing tests
Summary: Enable tests that were previously disabled because they didn't work on Windows. Reviewers: morehouse Reviewed By: morehouse Subscribers: morehouse Differential Revision: https://reviews.llvm.org/D57563 llvm-svn: 353000
Configuration menu - View commit details
-
Copy full SHA for e2469b1 - Browse repository at this point
Copy the full SHA e2469b1View commit details -
[CGP] adjust target constraints for forming uaddo
There are 2 changes visible here: 1. There's no reason to limit this transform based on number of condition registers. That diff allows PPC to produce slightly better (dot-instructions should be generally good) code. Note: someone that cares about PPC codegen might want to look closer at that output because it seems like we could still improve this. 2. We (probably?) should not bother trying to form uaddo (or other overflow ops) when there's no target support for such an op. This goes beyond checking whether the op is expanded because both PPC and AArch64 show better codegen for standard types regardless of whether the op is legal/custom. llvm-svn: 353001
Configuration menu - View commit details
-
Copy full SHA for 84ceae6 - Browse repository at this point
Copy the full SHA 84ceae6View commit details -
[PowerPC] adjust test for uaddo change in rL353001
We don't need a mtctr/bctr for this test now; a regular conditional branch is fine. llvm-svn: 353002
Configuration menu - View commit details
-
Copy full SHA for f1314b6 - Browse repository at this point
Copy the full SHA f1314b6View commit details -
[ASTDump] Add a flag indicating whether a CXXThisExpr is implicit
There is currently no way to distinguish implicit from explicit CXXThisExpr in the AST dump output. Differential Revision: https://reviews.llvm.org/D57649 Reviewed By: steveire llvm-svn: 353003
Configuration menu - View commit details
-
Copy full SHA for 64bebe9 - Browse repository at this point
Copy the full SHA 64bebe9View commit details -
[NFC] Make vector types legal in UREM test
As discussed in D50222, this changes the vector types in tests required for that revision to ones legal for X86. Patch by @hermord (Dmytro Shynkevych) Differential Revision: https://reviews.llvm.org/D56372 llvm-svn: 353004
Configuration menu - View commit details
-
Copy full SHA for 135413d - Browse repository at this point
Copy the full SHA 135413dView commit details -
[AST] Update the comments of the various Expr::Ignore* + Related clea…
…nups The description of what the various Expr::Ignore* do has drifted from the actual implementation. Inspection reveals that IgnoreParenImpCasts() is not equivalent to doing IgnoreParens() + IgnoreImpCasts() until reaching a fixed point, but IgnoreParenCasts() is equivalent to doing IgnoreParens() + IgnoreCasts() until reaching a fixed point. There is also a fair amount of duplication in the various Expr::Ignore* functions which increase the chance of further future inconsistencies. In preparation for the next patch which will factor out the implementation of the various Expr::Ignore*, do the following cleanups: Remove Stmt::IgnoreImplicit, in favor of Expr::IgnoreImplicit. IgnoreImplicit is the only function among all of the Expr::Ignore* which is available in Stmt. There are only a few users of Stmt::IgnoreImplicit. They can just use instead Expr::IgnoreImplicit like they have to do for the other Ignore*. Move Expr::IgnoreImpCasts() from Expr.h to Expr.cpp. This made no difference in the run-time with my usual benchmark (-fsyntax-only on all of Boost). While we are at it, make IgnoreParenNoopCasts take a const reference to the ASTContext for const correctness. Update the comments to match what the Expr::Ignore* are actually doing. I am not sure that listing exactly what each Expr::Ignore* do is optimal, but it certainly looks better than the current state which is in my opinion between misleading and just plain wrong. The whole patch is NFC (if you count removing Stmt::IgnoreImplicit as NFC). Differential Revision: https://reviews.llvm.org/D57266 Reviewed By: aaron.ballman llvm-svn: 353006
Configuration menu - View commit details
-
Copy full SHA for e64aee8 - Browse repository at this point
Copy the full SHA e64aee8View commit details -
[LoopIdiomRecognize] @llvm.dbg values shouldn't affect the transforma…
…tion. Summary: PR40564 Reviewers: aprantl, rnk Subscribers: llvm-commits, hiraditya Tags: #llvm Differential Revision: https://reviews.llvm.org/D57629 llvm-svn: 353007
Configuration menu - View commit details
-
Copy full SHA for 73929c4 - Browse repository at this point
Copy the full SHA 73929c4View commit details -
[docs] Recommend assertions when testing.
Pointed out by Shoaib Meenai. llvm-svn: 353008
Configuration menu - View commit details
-
Copy full SHA for 1002ab3 - Browse repository at this point
Copy the full SHA 1002ab3View commit details -
[opaque pointer types] Trivial changes towards CallInst requiring
explicit function types. llvm-svn: 353009
Configuration menu - View commit details
-
Copy full SHA for 8799cae - Browse repository at this point
Copy the full SHA 8799caeView commit details -
Provide a placement new definition for the SEH version of UnwindCursor
This fixes compilation after SVN r352966 in SEH mode. llvm-svn: 353010
Configuration menu - View commit details
-
Copy full SHA for 6ccad0a - Browse repository at this point
Copy the full SHA 6ccad0aView commit details -
Compute the correct symbol size in llvm-nm even without --print-size
In llvm-nm, the symbol size was being computed only with --print-size option, even though it was being printed in other cases, such as with --format=posix. This patch simply removes the guard, so that the size is computed independently of the later decision to print it or not. Fixes PR39997. Differential Revision: https://reviews.llvm.org/D57599 llvm-svn: 353011
Sunil Srivastava committedFeb 3, 2019 Configuration menu - View commit details
-
Copy full SHA for b33b410 - Browse repository at this point
Copy the full SHA b33b410View commit details
Commits on Feb 4, 2019
-
The MachO tests can run on any target, but require that the x86 backend is available. Broaden the coverage of the test. llvm-svn: 353012
Configuration menu - View commit details
-
Copy full SHA for 764727d - Browse repository at this point
Copy the full SHA 764727dView commit details -
Revert r352985 "[X86] Print %st(0) as %st to match what gcc inline as…
…m uses as the clobber name to make MS inline asm work correctly" Looking into gcc and objdump behavior more this was overly aggressive. If the register is encoded in the instruction we should print %st(0), if its implicit we should print %st. I'll be making a more directed change in a future patch. llvm-svn: 353013
Configuration menu - View commit details
-
Copy full SHA for f77b858 - Browse repository at this point
Copy the full SHA f77b858View commit details -
[X86] Regenerate test to drop 'End function' comments some other othe…
…r regex updates. llvm-svn: 353014
Configuration menu - View commit details
-
Copy full SHA for 145ccb0 - Browse repository at this point
Copy the full SHA 145ccb0View commit details -
[X86] Print %st(0) as %st when its implicit to the instruction. Conti…
…nue printing it as %st(0) when its encoded in the instruction. This is a step back from the change I made in r352985. This appears to be more consistent with gcc and objdump behavior. llvm-svn: 353015
Configuration menu - View commit details
-
Copy full SHA for 7a2944e - Browse repository at this point
Copy the full SHA 7a2944eView commit details -
Recommit r352660 "[X86] Mark EMMS and FEMMS as clobbering MM0-7 and S…
…T0-7." We now print ST0 as 'st' when generating the clobber list for MS inline assembly in clang. This matches what the gcc reg name list expects. Original commit message: This fixes the test case in PR35982 by preventing MMX instructions that read MM0-7 from being moved below EMMS/FEMMS by the post RA scheduler. Though as discussed in bugzilla, this is not a complete fix. There is still the possibility of reordering in IR or by the pre-RA scheduler. Differential Revision: https://reviews.llvm.org/D57298 llvm-svn: 353016
Configuration menu - View commit details
-
Copy full SHA for b5e945c - Browse repository at this point
Copy the full SHA b5e945cView commit details -
[SCEV] Do not bother creating separate SCEVUnknown for unreachable nodes
Currently, SCEV creates SCEVUnknown for every node of unreachable code. If we have a huge amounts of such code, we will be littering SE with these nodes. We could just state that they all are undef and save some memory. Differential Revision: https://reviews.llvm.org/D57567 Reviewed By: sanjoy llvm-svn: 353017
Max Kazantsev committedFeb 4, 2019 Configuration menu - View commit details
-
Copy full SHA for 437ee05 - Browse repository at this point
Copy the full SHA 437ee05View commit details -
[OpenMP] Adding support to the mutexinoutset dep-type
Summary: this commit adds support to a new dependence type introduced in OpenMP 5.0. The LLVM OpenMP RTL already supports this feature, so we only need to modify CLANG to take advantage of them. Differential Revision: https://reviews.llvm.org/D57576 llvm-svn: 353018
Configuration menu - View commit details
-
Copy full SHA for 31df1ad - Browse repository at this point
Copy the full SHA 31df1adView commit details -
[llvm-exegesis] Don't default to running&dumping all analyses to '-'
Summary: Up until the point i have looked in the source, i didn't even understood that i can disable 'cluster' output. I have always silenced it via ` &> /dev/null`. (And hoped it wasn't contributing much of the run time.) While i expect that it has it's use-cases i never once needed it so far. If i forget to silence it, console is completely flooded with that output. How about not expecting users to opt-out of analyses, but to explicitly specify the analyses that should be performed? Reviewers: courbet, gchatelet Reviewed By: courbet Subscribers: tschuett, RKSimon, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D57648 llvm-svn: 353021
Configuration menu - View commit details
-
Copy full SHA for 21193f4 - Browse repository at this point
Copy the full SHA 21193f4View commit details -
[llvm-exegesis] deserializeMCInst(): bump SmallVector small size up t…
…o 16 Summary: ... from 8. `VALIGNDZ128rmbik XMM0 XMM0 K1 XMM3 RDI i_0x1 i_0x0 i_0x1` instruction already has 9 components. It does not matter much in terms of performance, but avoiding allocation seems to come with low cost here.. Reviewers: courbet, gchatelet Reviewed By: courbet Subscribers: tschuett, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D57654 llvm-svn: 353022
Configuration menu - View commit details
-
Copy full SHA for dc78bc2 - Browse repository at this point
Copy the full SHA dc78bc2View commit details -
[llvm-exegesis] Throughput support in analysis mode
Summary: D57000 / [[ https://bugs.llvm.org/show_bug.cgi?id=37698 | PR37698 ]] added support for measuring of the inverse throughput. But the support for the analysis was not added. This attempts to fix that. (analysis done o bdver2 / piledriver) First, small-scale experiment: ``` $ ./bin/llvm-exegesis -num-repetitions=10000 -mode=inverse_throughput -opcode-name=BSF64rr Check generated assembly with: /usr/bin/objdump -d /tmp/snippet-d0acdd.o --- mode: inverse_throughput key: instructions: - 'BSF64rr RAX RDX' config: '' register_initial_values: - 'RDX=0x0' cpu_name: bdver2 llvm_triple: x86_64-unknown-linux-gnu num_repetitions: 10000 measurements: - { key: inverse_throughput, value: 3.0278, per_snippet_value: 3.0278 } error: '' info: instruction has no tied variables picking Uses different from defs assembled_snippet: 48BA0000000000000000480FBCC2480FBCC2480FBCC2480FBCC2480FBCC2480FBCC2480FBCC2480FBCC2480FBCC2480FBCC2480FBCC2480FBCC2480FBCC2480FBCC2480FBCC2480FBCC2C3 ... ``` If we plug `bsfq %r12, %r10` into llvm-mca: https://godbolt.org/z/ZtOyhJ ``` Dispatch Width: 4 uOps Per Cycle: 3.00 IPC: 0.50 Block RThroughput: 2.0 ``` So RThroughput mismatch exists. Now, let's upscale and analyse: {F8207148} `$ ./bin/llvm-exegesis -mode=analysis -analysis-epsilon=1.0 -benchmarks-file=/tmp/benchmarks-inverse_throughput.yaml -analysis-inconsistencies-output-file=/tmp/clusters.html`: {F8207172} {F8207197} And if we now look at https://www.agner.org/optimize/instruction_tables.pdf, `Reciprocal throughput` for `BSF r,r` is listed as `3`. Yay? Reviewers: courbet, gchatelet Reviewed By: courbet Subscribers: tschuett, RKSimon, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D57647 llvm-svn: 353023
Configuration menu - View commit details
-
Copy full SHA for 1a0d595 - Browse repository at this point
Copy the full SHA 1a0d595View commit details -
[llvm-exegesis] Cut run time of analysis mode by -84% (*sic*) (YamlCo…
…ntext::getInstrOpcode()) Summary: ``` $ perf stat -r 9 ./bin/llvm-exegesis -mode=analysis -analysis-epsilon=1.0 -benchmarks-file=/tmp/benchmarks-inverse_throughput-onefull.yaml -analysis-clusters-output-file="" -analysis-inconsistencies-output-file=/tmp/clusters-old.html no exegesis target for x86_64-unknown-linux-gnu, using default Parsed 14656 benchmark points Printing sched class consistency analysis results to file '/tmp/clusters-old.html' ... no exegesis target for x86_64-unknown-linux-gnu, using default Parsed 14656 benchmark points Printing sched class consistency analysis results to file '/tmp/clusters-old.html' Performance counter stats for './bin/llvm-exegesis -mode=analysis -analysis-epsilon=1.0 -benchmarks-file=/tmp/benchmarks-inverse_throughput-onefull.yaml -analysis-clusters-output-file= -analysis-inconsistencies-output-file=/tmp/clusters-old.html' (9 runs): 9465.46 msec task-clock # 1.000 CPUs utilized ( +- 0.05% ) 60 context-switches # 6.363 M/sec ( +- 79.45% ) 0 cpu-migrations # 0.000 K/sec 11364 page-faults # 1200.697 M/sec ( +- 0.60% ) 37935623543 cycles # 4008083.912 GHz ( +- 0.05% ) (83.32%) 2371625356 stalled-cycles-frontend # 6.25% frontend cycles idle ( +- 0.37% ) (83.32%) 8476077875 stalled-cycles-backend # 22.34% backend cycles idle ( +- 0.18% ) (33.36%) 41822439158 instructions # 1.10 insn per cycle # 0.20 stalled cycles per insn ( +- 0.02% ) (50.03%) 11607658944 branches # 1226405861.486 M/sec ( +- 0.01% ) (66.69%) 210864633 branch-misses # 1.82% of all branches ( +- 0.06% ) (83.34%) 9.46636 +- 0.00441 seconds time elapsed ( +- 0.05% ) ``` ``` $ perf stat -r 9 ./bin/llvm-exegesis -mode=analysis -analysis-epsilon=1.0 -benchmarks-file=/tmp/benchmarks-inverse_throughput-onefull.yaml -analysis-clusters-output-file="" -analysis-inconsistencies-output-file=/tmp/clusters-bew.html no exegesis target for x86_64-unknown-linux-gnu, using default Parsed 14656 benchmark points Printing sched class consistency analysis results to file '/tmp/clusters-bew.html' ... no exegesis target for x86_64-unknown-linux-gnu, using default Parsed 14656 benchmark points Printing sched class consistency analysis results to file '/tmp/clusters-bew.html' Performance counter stats for './bin/llvm-exegesis -mode=analysis -analysis-epsilon=1.0 -benchmarks-file=/tmp/benchmarks-inverse_throughput-onefull.yaml -analysis-clusters-output-file= -analysis-inconsistencies-output-file=/tmp/clusters-bew.html' (9 runs): 1480.66 msec task-clock # 1.000 CPUs utilized ( +- 0.19% ) 13 context-switches # 8.483 M/sec ( +- 83.10% ) 0 cpu-migrations # 0.075 M/sec ( +-100.00% ) 11596 page-faults # 7834.247 M/sec ( +- 0.59% ) 5933732194 cycles # 4008977.535 GHz ( +- 0.19% ) (83.22%) 438111928 stalled-cycles-frontend # 7.38% frontend cycles idle ( +- 0.37% ) (83.25%) 1454969705 stalled-cycles-backend # 24.52% backend cycles idle ( +- 0.94% ) (33.53%) 7724218604 instructions # 1.30 insn per cycle # 0.19 stalled cycles per insn ( +- 0.07% ) (50.14%) 1979796413 branches # 1337599858.945 M/sec ( +- 0.06% ) (66.74%) 32641638 branch-misses # 1.65% of all branches ( +- 0.18% ) (83.31%) 1.48128 +- 0.00284 seconds time elapsed ( +- 0.19% ) $ sha512sum /tmp/clusters-* db4bbd904fe8840853b589b032c5041bc060b91bcd9c27b914b56581fbc473550eea74b852238c79963b5adf2419f379e9f5db76784048b48e3937f9f3e732bf /tmp/clusters-bew.html db4bbd904fe8840853b589b032c5041bc060b91bcd9c27b914b56581fbc473550eea74b852238c79963b5adf2419f379e9f5db76784048b48e3937f9f3e732bf /tmp/clusters-old.html ``` Reviewers: courbet, gchatelet Reviewed By: courbet Subscribers: tschuett, llvm-commits, RKSimon Tags: #llvm Differential Revision: https://reviews.llvm.org/D57657 llvm-svn: 353024
Configuration menu - View commit details
-
Copy full SHA for 5b94fe9 - Browse repository at this point
Copy the full SHA 5b94fe9View commit details -
[llvm-exegesis] Cut run time of analysis mode by another -35% (*sic*)…
… (YamlContext::getRegNo()) Summary: Together with the previous patch, it's an -90% improvement, or roughly -96% improvement if you look starting with rL347204 ``` $ perf stat -r 9 ./bin/llvm-exegesis -mode=analysis -analysis-epsilon=1.0 -benchmarks-file=/tmp/benchmarks-inverse_throughput-onefull.yaml -analysis-clusters-output-file="" -analysis-inconsistencies-output-file=/tmp/clusters-bew.html no exegesis target for x86_64-unknown-linux-gnu, using default Parsed 14656 benchmark points Printing sched class consistency analysis results to file '/tmp/clusters-bew.html' ... no exegesis target for x86_64-unknown-linux-gnu, using default Parsed 14656 benchmark points Printing sched class consistency analysis results to file '/tmp/clusters-bew.html' Performance counter stats for './bin/llvm-exegesis -mode=analysis -analysis-epsilon=1.0 -benchmarks-file=/tmp/benchmarks-inverse_throughput-onefull.yaml -analysis-clusters-output-file= -analysis-inconsistencies-output-file=/tmp/clusters-bew.html' (9 runs): 1483.18 msec task-clock # 0.999 CPUs utilized ( +- 0.10% ) 68 context-switches # 46.085 M/sec ( +- 22.62% ) 0 cpu-migrations # 0.000 K/sec 11641 page-faults # 7850.880 M/sec ( +- 0.62% ) 5943246799 cycles # 4008184.428 GHz ( +- 0.10% ) (83.28%) 442869514 stalled-cycles-frontend # 7.45% frontend cycles idle ( +- 0.41% ) (83.29%) 1443375663 stalled-cycles-backend # 24.29% backend cycles idle ( +- 0.47% ) (33.43%) 7714006752 instructions # 1.30 insn per cycle # 0.19 stalled cycles per insn ( +- 0.07% ) (50.17%) 1977242936 branches # 1333472193.855 M/sec ( +- 0.07% ) (66.79%) 32624220 branch-misses # 1.65% of all branches ( +- 0.18% ) (83.34%) 1.48438 +- 0.00143 seconds time elapsed ( +- 0.10% ) ``` ``` $ perf stat -r 9 ./bin/llvm-exegesis -mode=analysis -analysis-epsilon=1.0 -benchmarks-file=/tmp/benchmarks-inverse_throughput-onefull.yaml -analysis-clusters-output-file="" -analysis-inconsistencies-output-file=/tmp/clusters-newer.html no exegesis target for x86_64-unknown-linux-gnu, using default Parsed 14656 benchmark points Printing sched class consistency analysis results to file '/tmp/clusters-newer.html' ... no exegesis target for x86_64-unknown-linux-gnu, using default Parsed 14656 benchmark points Printing sched class consistency analysis results to file '/tmp/clusters-newer.html' Performance counter stats for './bin/llvm-exegesis -mode=analysis -analysis-epsilon=1.0 -benchmarks-file=/tmp/benchmarks-inverse_throughput-onefull.yaml -analysis-clusters-output-file= -analysis-inconsistencies-output-file=/tmp/clusters-newer.html' (9 runs): 963.28 msec task-clock # 0.999 CPUs utilized ( +- 0.37% ) 12 context-switches # 12.695 M/sec ( +- 52.79% ) 0 cpu-migrations # 0.000 K/sec 11599 page-faults # 12046.971 M/sec ( +- 0.59% ) 3860122322 cycles # 4009359.596 GHz ( +- 0.37% ) (83.19%) 380300669 stalled-cycles-frontend # 9.85% frontend cycles idle ( +- 0.34% ) (83.30%) 1071910340 stalled-cycles-backend # 27.77% backend cycles idle ( +- 1.30% ) (33.51%) 4773418224 instructions # 1.24 insn per cycle # 0.22 stalled cycles per insn ( +- 0.15% ) (50.17%) 1106990316 branches # 1149787979.919 M/sec ( +- 0.11% ) (66.80%) 23632231 branch-misses # 2.13% of all branches ( +- 0.18% ) (83.33%) 0.96389 +- 0.00356 seconds time elapsed ( +- 0.37% ) ``` ``` $ sha512sum /tmp/clusters-* db4bbd904fe8840853b589b032c5041bc060b91bcd9c27b914b56581fbc473550eea74b852238c79963b5adf2419f379e9f5db76784048b48e3937f9f3e732bf /tmp/clusters-bew.html db4bbd904fe8840853b589b032c5041bc060b91bcd9c27b914b56581fbc473550eea74b852238c79963b5adf2419f379e9f5db76784048b48e3937f9f3e732bf /tmp/clusters-newer.html db4bbd904fe8840853b589b032c5041bc060b91bcd9c27b914b56581fbc473550eea74b852238c79963b5adf2419f379e9f5db76784048b48e3937f9f3e732bf /tmp/clusters-old.html ``` Reviewers: courbet, gchatelet Reviewed By: courbet Subscribers: tschuett, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D57658 llvm-svn: 353025
Configuration menu - View commit details
-
Copy full SHA for bd84b13 - Browse repository at this point
Copy the full SHA bd84b13View commit details -
[clangd] Update vscode dependencies
This allows us to use latest LSP v3.14.0 (for go-to-declaration feature). llvm-svn: 353026
Configuration menu - View commit details
-
Copy full SHA for a1b0596 - Browse repository at this point
Copy the full SHA a1b0596View commit details -
[clangd] Bump vscode-clangd v0.0.10
CHANGELOG: - cleanup filestatus caches when clangd crashes - extension workwith LSP v3.14.0, support go-to-declaration feature llvm-svn: 353027
Configuration menu - View commit details
-
Copy full SHA for 8e933c1 - Browse repository at this point
Copy the full SHA 8e933c1View commit details -
[SelectionDAG] Add a BaseIndexOffset::print() method for debugging.
llvm-svn: 353028
Configuration menu - View commit details
-
Copy full SHA for 1bb0e5c - Browse repository at this point
Copy the full SHA 1bb0e5cView commit details -
[clang] Add getCommentHandler to PreambleCallbacks
Summary: Enables users to add comment handlers to preprocessor when building preambles. Reviewers: ilya-biryukov, ioeric Subscribers: cfe-commits Differential Revision: https://reviews.llvm.org/D57507 llvm-svn: 353030
Configuration menu - View commit details
-
Copy full SHA for 9e012e8 - Browse repository at this point
Copy the full SHA 9e012e8View commit details -
[NFC] Replace equivalent condition for better readability
llvm-svn: 353032
Max Kazantsev committedFeb 4, 2019 Configuration menu - View commit details
-
Copy full SHA for 65970aa - Browse repository at this point
Copy the full SHA 65970aaView commit details -
[clang-format] Fix breaking of qualified operator
Summary: From https://bugs.llvm.org/show_bug.cgi?id=40516 ``` $ cat a.cpp const NamespaceName::VeryLongClassName &NamespaceName::VeryLongClassName::myFunction() { // do stuff } const NamespaceName::VeryLongClassName &NamespaceName::VeryLongClassName::operator++() { // do stuff } $ ~/ll/build/opt/bin/clang-format -style=LLVM a.cpp const NamespaceName::VeryLongClassName & NamespaceName::VeryLongClassName::myFunction() { // do stuff } const NamespaceName::VeryLongClassName &NamespaceName::VeryLongClassName:: operator++() { // do stuff } ``` What was happening is that the split penalty before `operator` was being set to a smaller value by a prior if block. Moved checks around to fix this and added a regression test. Reviewers: djasper Reviewed By: djasper Tags: #clang Differential Revision: https://reviews.llvm.org/D57604 llvm-svn: 353033
Configuration menu - View commit details
-
Copy full SHA for 20bef45 - Browse repository at this point
Copy the full SHA 20bef45View commit details -
[NFC] Remove redundant parameters for better readability
llvm-svn: 353034
Max Kazantsev committedFeb 4, 2019 Configuration menu - View commit details
-
Copy full SHA for 13ab5cb - Browse repository at this point
Copy the full SHA 13ab5cbView commit details -
[llvm-objcopy][NFC] Fix trailing semicolon warning.
llvm-svn: 353035
Configuration menu - View commit details
-
Copy full SHA for be16b80 - Browse repository at this point
Copy the full SHA be16b80View commit details -
[NFC] Rename variables to reflect the actual status of GuardWidening
llvm-svn: 353036
Max Kazantsev committedFeb 4, 2019 Configuration menu - View commit details
-
Copy full SHA for 09802f4 - Browse repository at this point
Copy the full SHA 09802f4View commit details -
Configuration menu - View commit details
-
Copy full SHA for 3643cbb - Browse repository at this point
Copy the full SHA 3643cbbView commit details -
[NFC] Make a check in GuardWidening more obvious
llvm-svn: 353038
Max Kazantsev committedFeb 4, 2019 Configuration menu - View commit details
-
Copy full SHA for 56b57e3 - Browse repository at this point
Copy the full SHA 56b57e3View commit details -
Merge remote-tracking branch 'origin/master' into intel.
Also switch to Apache-2.0 With LLVM-exception license. Signed-off-by: Vladimir Lazarev <vladimir.lazarev@intel.com>
Configuration menu - View commit details
-
Copy full SHA for c20e7e5 - Browse repository at this point
Copy the full SHA c20e7e5View commit details