| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
|
|
| |
Differential revision: https://reviews.llvm.org/D60502
llvm-svn: 359563
|
|
|
|
| |
llvm-svn: 359557
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This is a fix for https://bugs.llvm.org/show_bug.cgi?id=41371.
Currently, it is possible to break the sh_link field of the dynamic relocation section
by removing the section it refers to. The patch fixes an issue and adds 2 test cases.
One of them shows that it does not seem possible to break the sh_info field.
I added an assert to verify this.
Differential revision: https://reviews.llvm.org/D60825
llvm-svn: 359552
|
|
|
|
| |
llvm-svn: 359544
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Reviewers: zturner, rnk
Reviewed By: rnk
Subscribers: llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D61279
llvm-svn: 359520
|
|
|
|
|
|
|
|
|
|
|
| |
LLJITBuilder and LLLazyJITBuilder construct LLJIT and LLLazyJIT instances
respectively. Over time these will allow more configurable options to be
added while remaining easy to use in the default case, which for default
in-process JITing is now:
auto J = ExitOnErr(LLJITBuilder.create());
llvm-svn: 359511
|
|
|
|
|
|
|
|
| |
dereference warning
Reported in https://www.viva64.com/en/b/0629/
llvm-svn: 359488
|
|
|
|
|
|
|
|
|
|
|
|
| |
This patch extends the `-bb` option to be able to use the group
extraction feature from the BlockExtractor.
In particular, `-bb=func:bb` is modified to support a list of basic
blocks per function: `-bb=func:bb1[;bb2...]` that will be extracted
together if at all possible (region must be single entry.)
Differential Revision: https://reviews.llvm.org/D60973
llvm-svn: 359464
|
|
|
|
|
|
|
|
|
|
|
| |
This inlines 2 single line static methods
and simplifies the code.
It is also possible to remove the `Is64Bit`
variable since it is used only once,
but I am not sure it will be better for readability.
llvm-svn: 359445
|
|
|
|
|
|
| |
This looks better.
llvm-svn: 359444
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The current code has the following problems:
`initSymtabSectionHeader` and `initStrtabSectionHeader` method
names saying us they are going to initialize the section headers.
Though for a few cases sh_flags field is initialized outside of them.
It does not look clean. This patch moves initialization of the
sh_flags inside these methods.
Also, it removes an excessive variable, what together with the above
change hopefully makes the code a bit more readable.
llvm-svn: 359443
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This uses llvm-lib.exe for the librarian instead of Visual Studio
provided lib.exe. Without this it is not possible to create static
libraries with -flto using the plugin.
Original patch by Steven Noonan
This fixes: PR41147
Differential Revision: https://reviews.llvm.org/D61193
llvm-svn: 359430
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* char SymbolAddrStr[18] can't hold "%" PRIo64 which may need 22 characters.
* Use range-based for
* Delete unnecessary typedef
* format(...).print(Str, sizeof(Str)) + outs() << Str => outs() << format(...)
* Use cascading outs() << .. << ..
* Use iterator_range(Container &&c)
* (A & B) == B => A & B if B is a power of 2
* replace null sentinel in constants with makeArrayRef
llvm-svn: 359416
|
|
|
|
|
|
|
|
| |
Patch by Wasiher. Thanks Wasiher!
Differential Revision: https://reviews.llvm.org/D61135
llvm-svn: 359384
|
|
|
|
| |
llvm-svn: 359383
|
|
|
|
| |
llvm-svn: 359380
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
ObjectLinkingLayer::Plugin provides event notifications when objects are loaded,
emitted, and removed. It also provides a modifyPassConfig callback that allows
plugins to modify the JITLink pass configuration.
This patch moves eh-frame registration into its own plugin, and teaches
llvm-jitlink to only add that plugin when performing execution runs on
non-Windows platforms. This should allow us to re-enable the test case that was
removed in r359198.
llvm-svn: 359357
|
|
|
|
| |
llvm-svn: 359315
|
|
|
|
| |
llvm-svn: 359314
|
|
|
|
| |
llvm-svn: 359312
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
In addition, fix and convert the two tests to yaml2obj based. This
allows us to delete two executables.
X86/weak.test: 'v' was not tested
X86/init-fini.test: symbol types of __bss_start _edata _end were wrong
GNU nm reports __init_array_start as 't', and __preinit_array_start as 'd'.
__init_array_start is 't' just because its section ".init_array" starts with ".init"
'd' makes more sense and allows us to drop the weird SHT_INIT_ARRAY rule.
So, change __init_array_start to 'd' instead.
llvm-svn: 359311
|
|
|
|
|
|
|
| |
No need to use SmallVector of char* here.
This simplifies the code.
llvm-svn: 359301
|
|
|
|
|
|
| |
`auto &Strtab` was used only once.
llvm-svn: 359300
|
|
|
|
|
|
|
| |
This renames the variables to uppercase and
removes use of `auto` for unobvious type.
llvm-svn: 359298
|
|
|
|
|
|
|
|
| |
This encapsulates the section specific code inside the
corresponding writeSectionContent methods.
Making the code a bit more consistent.
llvm-svn: 359297
|
|
|
|
| |
llvm-svn: 359295
|
|
|
|
|
|
|
|
|
|
|
| |
Closes: https://github.com/llvm/llvm-project/pull/10
In-collaboration-with: Olivier Cochard-Labbé <olivier@FreeBSD.org>
Signed-off-by: Enji Cooper <yaneurabeya@gmail.com>
Differential Revision: https://reviews.llvm.org/D61021
llvm-svn: 359277
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
llvm-{objcopy,strip} (and many other LLVM binary utilities) accept
cl::opt style -long-option as well as many short options (e.g. -p -S
-x). People who use them as replacement of GNU binutils often use the
grouped option syntax (POSIX Utility Conventions), e.g. -Sx => -S -x,
-Wd => -W -d, -sj.text => -s -j.text
There is ambiguity if a long option starts with the character used by a
short option. Drop the support for -long-option to resolve the ambiguity.
This divergence from other utilities is accepted (other utilities
continue supporting -long-option).
https://lists.llvm.org/pipermail/llvm-dev/2019-April/131786.html
Reviewers: alexshap, jakehehrlich, jhenderson, rupprecht, espindola
Reviewed By: jakehehrlich, jhenderson, rupprecht
Subscribers: grimar, emaste, arichardson, llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D60439
llvm-svn: 359265
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
yaml2obj might crash on invalid input when unable to parse the YAML.
Recently a crash with a very similar nature was fixed for an empty files.
This patch revisits the fix and does it in yaml::Input instead.
It seems to be more correct way to handle such situation.
With that crash for invalid inputs is also fixed now.
Differential revision: https://reviews.llvm.org/D61059
llvm-svn: 359178
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The --args option can now be used to pass arguments to code linked with
llvm-rtdyld. E.g.
$ llvm-rtdyld file1.o file2.o --args a b c
is equivalent to:
$ ld -o program file1.o file2.o
$ ./program a b c
This is the rtdyld counterpart to the jitlink change in r359115, and makes
benchmarking and comparison between the tools easier.
llvm-svn: 359168
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
When refactoring vectorization flags, vectorization was disabled by default in the new pass manager.
This patch re-enables is for both managers, and changes the assumptions opt makes, based on the new defaults.
Comments in opt.cpp should clarify the intended use of all flags to enable/disable vectorization.
Reviewers: chandlerc, jgorbe
Subscribers: jlebar, llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D61091
llvm-svn: 359167
|
|
|
|
|
|
| |
For test/Object/elf-invalid-phdr.test, the intended error message got lost due to errorToErrorCode().
llvm-svn: 359166
|
|
|
|
|
|
|
|
|
|
|
|
| |
For well-known type IDs, include the name of the type.
To not duplicate the ID->name map, make llvm-readobj call this new
function as well. It has slightly different output, so this also
requires updating a few tests.
Differential Revision: https://reviews.llvm.org/D61086
llvm-svn: 359153
|
|
|
|
| |
llvm-svn: 359128
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The --args option can now be used to pass arguments to code linked with
llvm-jitlink. E.g.
$ llvm-jitlink file1.o file2.o --args a b c
is equivalent to:
$ ld -o program file1.o file2.o
$ ./program a b c
llvm-svn: 359115
|
|
|
|
|
|
| |
Differential Revision: https://reviews.llvm.org/D61041
llvm-svn: 359113
|
|
|
|
|
|
|
|
| |
Revert r359100
It breaks llvm/test/Object/elf-invalid-phdr.test
llvm-svn: 359110
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Frame Descriptor Entries (FDEs) have a pointer back to a Common Information
Entry (CIE) that describes how the rest FDE should be parsed. JITLink had been
assuming that FDEs always referred to the most recent CIE encountered, but the
spec allows them to point back to any previously encountered CIE. This patch
fixes JITLink to look up the correct CIE for the FDE.
The testcase is a MachO binary with an FDE that refers to a CIE that is not the
one immediately proceeding it (the layout can be viewed wit
'dwarfdump --eh-frame <testcase>'. This test case had to be a binary as llvm-mc
now sorts FDEs (as of r356216) to ensure FDEs *do* point to the most recent CIE.
llvm-svn: 359105
|
|
|
|
| |
llvm-svn: 359102
|
|
|
|
|
|
|
|
|
|
| |
bit. NFC.
This makes the variables naming to match LLVM style,
simplifies the code used to extract the group members,
simplifies the loop and reorders the code around a bit.
llvm-svn: 359101
|
|
|
|
| |
llvm-svn: 359100
|
|
|
|
| |
llvm-svn: 359091
|
|
|
|
|
|
| |
And apply clang-format to the method changed.
llvm-svn: 359090
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
cl::opt<uint64_t> on LP64 platforms
Summary:
And migrate opt<unsigned long long> to opt<uint64_t>
Fixes PR19665
Differential Revision: https://reviews.llvm.org/D60933
llvm-svn: 359068
|
|
|
|
| |
llvm-svn: 359064
|
|
|
|
|
|
|
|
|
| |
This was meant to be part of the original commit r358921, but somehow
got lost.
<rdar://problem/49751748>
llvm-svn: 359010
|
|
|
|
|
|
| |
<rdar://problem/50117620>
llvm-svn: 359003
|
|
|
|
| |
llvm-svn: 359002
|
|
|
|
|
|
| |
<rdar://problem/50117620>
llvm-svn: 359001
|
|
|
|
| |
llvm-svn: 358933
|