| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
| |
llvm-svn: 287496
|
| |
|
|
| |
llvm-svn: 287495
|
| |
|
|
| |
llvm-svn: 287494
|
| |
|
|
|
|
| |
Basic AVX512F already declared uint_to_fp v4i32 as legal
llvm-svn: 287493
|
| |
|
|
| |
llvm-svn: 287492
|
| |
|
|
|
|
| |
Use 512-bit instructions (we already do something similar for uint_to_fp v4i32 to v4f64)
llvm-svn: 287491
|
| |
|
|
|
|
| |
Identified by Pedro Giffuni in PR27636.
llvm-svn: 287490
|
| |
|
|
|
|
| |
Identified by Pedro Giffuni in PR27636.
llvm-svn: 287489
|
| |
|
|
|
|
| |
Identified by Pedro Giffuni in PR27636.
llvm-svn: 287488
|
| |
|
|
|
|
| |
Identified by Pedro Giffuni in PR27636.
llvm-svn: 287487
|
| |
|
|
|
|
| |
Identified by Pedro Giffuni in PR27636.
llvm-svn: 287486
|
| |
|
|
|
|
|
|
|
|
| |
The change is part of RegCall calling convention support for LLVM.
Long double (f80) requires special treatment as the first f80 parameter is saved in FP0 (floating point stack).
This review present the change and the corresponding tests.
Differential Revision: https://reviews.llvm.org/D26151
llvm-svn: 287485
|
| |
|
|
|
|
|
|
| |
Fixing a wrong comment on X86AsmParser.cpp::ParseZ: "true" --> "false"
Differential Revision: https://reviews.llvm.org/D26797
llvm-svn: 287484
|
| |
|
|
|
|
|
|
|
|
| |
The doxygen comments are automatically generated based on Sony's intrinsics docu
ment.
I got an OK from Eric Christopher to commit doxygen comments without prior code
review upstream. This patch was internally reviewed by Charles Li.
llvm-svn: 287483
|
| |
|
|
|
|
|
|
|
|
| |
If a response file in construct `@file` was specified by relative name,
constructs `@file` nested within it were resolved incorrectly if the
flag RelativeNames in call to ExpandResponseFile was set to true.
This feature is used in configuration files, tests for it are in
respective change (see D24933).
llvm-svn: 287482
|
| |
|
|
| |
llvm-svn: 287481
|
| |
|
|
|
|
|
|
|
|
| |
Also this patch uses file-scope functions instead of class member function.
Now that ICF class is not visible from outside, InputSection class
can no longer be "friend" of it. So I removed the friend relation
and just make it expose the features to public.
llvm-svn: 287480
|
| |
|
|
|
|
|
|
| |
The casting based reading of the LSDA could attempt to read unsuitably aligned
data. Avoid that case by explicitly using a memcpy. A similar approach is used
in libc++abi to address the same UB.
llvm-svn: 287479
|
| |
|
|
|
|
|
|
|
|
|
| |
Rather than redeclaring the interfaces for exceptions, prefer using the
`unwind.h` header. This is vended by at least gcc and clang, and can also be
found by an external unwinding library (e.g. libunwind). Doing this simplifies
the example to the exception handling itself. Minor tweaks are the result of
_Unwind_Context_t not being defined, which is just a typedef for struct
_Unwind_Context *. NFC.
llvm-svn: 287478
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
add BPF disassembler, so tools like llvm-objdump can be used:
$ llvm-objdump -d -no-show-raw-insn ./sockex1_kern.o
./sockex1_kern.o: file format ELF64-BPF
Disassembly of section socket1:
bpf_prog1:
0: r6 = r1
8: r0 = *(u8 *)skb[23]
10: *(u32 *)(r10 - 4) = r0
18: r1 = *(u32 *)(r6 + 4)
20: if r1 != 4 goto 8
28: r2 = r10
30: r2 += -4
ld_imm64 (the only 16-byte insn) and special ld_abs/ld_ind instructions
had to be treated in a special way. The decoders for the rest of the insns
are automatically generated.
Add tests to cover new functionality.
Signed-off-by: Alexei Starovoitov <ast@kernel.org>
llvm-svn: 287477
|
| |
|
|
| |
llvm-svn: 287476
|
| |
|
|
| |
llvm-svn: 287475
|
| |
|
|
| |
llvm-svn: 287474
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This code is taken from public domain.
https://github.com/jsonn/src/blob/trunk/common/lib/libc/hash/sha1/sha1.c
I wrote a sha1 command and ran it on my Xeon E5-2680 v2 2.80GHz machine.
Here is a result. The new hash function is 37% faster than before.
Performance counter stats for './llvm-sha1-old /ssd/build/bin/lld' (10 runs):
6640.503687 task-clock (msec) # 1.001 CPUs utilized ( +- 0.03% )
54 context-switches # 0.008 K/sec ( +- 5.03% )
5 cpu-migrations # 0.001 K/sec ( +- 31.73% )
183,803 page-faults # 0.028 M/sec ( +- 0.00% )
18,527,954,113 cycles # 2.790 GHz ( +- 0.03% )
4,993,237,485 stalled-cycles-frontend # 26.95% frontend cycles idle ( +- 0.11% )
<not supported> stalled-cycles-backend
50,217,149,423 instructions # 2.71 insns per cycle
# 0.10 stalled cycles per insn ( +- 0.00% )
6,094,322,337 branches # 917.750 M/sec ( +- 0.00% )
11,778,239 branch-misses # 0.19% of all branches ( +- 0.01% )
6.634017401 seconds time elapsed ( +- 0.03% )
Performance counter stats for './llvm-sha1-new /ssd/build/bin/lld' (10 runs):
4167.062720 task-clock (msec) # 1.001 CPUs utilized ( +- 0.02% )
52 context-switches # 0.012 K/sec ( +- 16.45% )
7 cpu-migrations # 0.002 K/sec ( +- 32.20% )
183,804 page-faults # 0.044 M/sec ( +- 0.00% )
11,626,611,958 cycles # 2.790 GHz ( +- 0.02% )
4,491,897,976 stalled-cycles-frontend # 38.63% frontend cycles idle ( +- 0.05% )
<not supported> stalled-cycles-backend
24,320,180,617 instructions # 2.09 insns per cycle
# 0.18 stalled cycles per insn ( +- 0.00% )
1,574,674,576 branches # 377.886 M/sec ( +- 0.00% )
11,769,693 branch-misses # 0.75% of all branches ( +- 0.00% )
4.163251552 seconds time elapsed ( +- 0.02% )
Differential Revision: https://reviews.llvm.org/D26890
llvm-svn: 287473
|
| |
|
|
|
|
|
|
|
| |
The demangler had stopped using a custom allocator but had not been updated to
remove the use of the explicit allocator passing. This removes that as we do
not need to do anything special here anymore. This just makes the code more
compact. NFC.
llvm-svn: 287472
|
| |
|
|
|
|
|
| |
We could create a local typedef for std::vector called Vector. Inline the use
of std::vector rather than use the typedef. NFC.
llvm-svn: 287471
|
| |
|
|
|
|
|
|
| |
We created a local typedef for `std::basic_string<char, std::char_traits<char>>`
which is just `std::string`. Remove the local typedef and propagate the type
information through the rest of the demangler. NFC.
llvm-svn: 287470
|
| |
|
|
|
|
|
| |
Prefer direct member initialization over the explicit out-of-line initialization
for the construction of the local type. NFC.
llvm-svn: 287469
|
| |
|
|
|
|
|
| |
We have a .cpp and a .h for parseDynamicList(). This patch
moves the function to DriverUtil.cpp.
llvm-svn: 287468
|
| |
|
|
| |
llvm-svn: 287467
|
| |
|
|
|
|
|
| |
In order to use forEachGroup in the final loop in ICF::run,
I changed some function parameter types.
llvm-svn: 287466
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
When building with clang/LLVM in MSVC mode, the msvcrt libraries contain
these functions.
When building in a mingw environment, we need to provide them somehow,
e.g. via compiler-rt.
The aeabi divmod functions work in the same way as the corresponding
__rt_*div* functions for windows, but their parameters are swapped.
The functions for converting float to integer and vice versa are the
same as their aeabi equivalents, only with different function names.
Differential Revision: https://reviews.llvm.org/D26183
llvm-svn: 287465
|
| |
|
|
|
|
|
|
|
|
|
| |
We're seeying these errors with GCC and Clang on different systems, while
some other identical OSs on different boards fail. Like many other ASAN
tests, there seem to be no easy way to investigate this other than someone
familiar with the sanitizer code and the ARM libraries.
At least, for now, we'll silence the bots. I'll create a bugzilla entry.
llvm-svn: 287464
|
| |
|
|
|
|
| |
I broke this in r287406 and r287407.
llvm-svn: 287463
|
| |
|
|
| |
llvm-svn: 287462
|
| |
|
|
|
|
| |
Canonicalization may leave the zeroable vector in the first input.
llvm-svn: 287461
|
| |
|
|
| |
llvm-svn: 287460
|
| |
|
|
| |
llvm-svn: 287459
|
| |
|
|
| |
llvm-svn: 287458
|
| |
|
|
| |
llvm-svn: 287457
|
| |
|
|
| |
llvm-svn: 287456
|
| |
|
|
|
|
| |
This patch also changes its return type to simplify callers.
llvm-svn: 287455
|
| |
|
|
|
|
|
| |
We do not have an option taking more than one arguments,
so we can just say "missing argument" instead of "missing argument(s)".
llvm-svn: 287454
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
It seems that because ThinLTO does not import the full module,
some invariant of the type mapper are broken.
In Monolithic LTO, we import every globals: when calling
IRLinker::copyFunctionProto() on @foo(), we end-up calling
TypeMapTy::get(FTy) on the type of @foo(), which will map
%0 and record the destination as opaque.
ThinLTO skips this because @foo is not imported and goes directly
to the next stage.
Next we call computeTypeMapping() that map the types for each
globals, and ends up checking for type isomorphism, and may add
type mapping. However it doesn't record if there was an opaque
destination type that was resolved.
Instead of lazily "discovering" opaque type in the destination
module on the go, we change the TypeFinder to eagerly record all
types and not only the named ones.
Differential Revision: https://reviews.llvm.org/D26840
llvm-svn: 287453
|
| |
|
|
| |
llvm-svn: 287452
|
| |
|
|
| |
llvm-svn: 287451
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
This will also be added to the LTO API, right now this will
bring ThinLTO on par with Monolithic LTO on Darwin.
Reviewers: anemet
Subscribers: tejohnson, llvm-commits
Differential Revision: https://reviews.llvm.org/D26886
llvm-svn: 287450
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
This makes it explicit that ownership is taken. Also replace all `new`
with make_unique<> at call sites.
Reviewers: anemet
Subscribers: llvm-commits
Differential Revision: https://reviews.llvm.org/D26884
llvm-svn: 287449
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
GNU linkers disagree here.
Though both -version and -v are mentioned
in help to print the version information, GNU ld just normally exits,
while gold can continue linking. We are compatible with ld.bfd here.
This fixes PR31057.
Differential revision: https://reviews.llvm.org/D26865
llvm-svn: 287448
|
| |
|
|
| |
llvm-svn: 287447
|