peter.smith (Peter Smith)
User

Projects

User does not belong to any projects.

User Details

User Since
Apr 11 2016, 8:56 AM (70 w, 6 d)

Recent Activity

Fri, Aug 18

peter.smith added a comment to D36874: [ELF] - Mention "-z notext" and -fPIC in some error messages.

I think that this is a worthwhile addition, I've seen at least a couple of questions on llvm-dev that this improvement might have helped to resolve.

Fri, Aug 18, 8:31 AM
peter.smith added a comment to D36256: [ELF] Don't output headers into a segment if there's no space for them.

I'd like to see something like this for embedded systems as the ELF file is often not directly run on the target (PT_LOAD regions are extracted into binary or hex and burned into flash), having the ELF headers mapped in the first PT_LOAD is often detrimental. I suggest you add Rafael as a reviewer as well as he has touched this area fairly recently.

Fri, Aug 18, 3:24 AM · lld
peter.smith updated the diff for D34692: [LLD][ELF] Add support for multiple passes to createThunks().

Rebasing after changes to use llvm::erase_if in D34689

Fri, Aug 18, 2:19 AM
peter.smith updated the diff for D34689: [LLD][ELF] Pre-create ThunkSections at Target specific intervals.

Thanks for pointing out llvm::erase_if, I've updated the diff to use it.

Fri, Aug 18, 2:17 AM
peter.smith updated the diff for D34689: [LLD][ELF] Pre-create ThunkSections at Target specific intervals.

Thanks for the comment, I've updated the diff with the change from Mb to Mib.

Fri, Aug 18, 1:40 AM

Thu, Aug 17

peter.smith added inline comments to D36823: [LLD][ELF] Read ARM BuildAttributes section to determine supported features..
Thu, Aug 17, 9:02 AM
peter.smith created D36823: [LLD][ELF] Read ARM BuildAttributes section to determine supported features..
Thu, Aug 17, 3:50 AM

Wed, Aug 16

peter.smith added a comment to D36675: [ARM][Compiler-rt] Fix AEABI builtins to correctly pass arguments to non-AEABI functions on HF targets.

I'll need to work out why my target (default armv7--linux-gnueabihf) got rejected. As an aside it would be interesting to know what target you used?

Yes, I had to manually add arm-target-arch to available features to enable these tests.
Seems we can fix this by handling the ARM architectures similarly to x86 (test/lit.common.cfg):

if target_arch in ['x86_64', 'i386', 'i686']:
  config.available_features.add('x86-target-arch')

For ARM we now have only

config.available_features.add(target_arch + '-target-arch')

so the armv7--linux-gnueabihf triple gives us armv7-target-arch that does not match the test's requirements.

Wed, Aug 16, 1:39 AM

Tue, Aug 15

peter.smith added a comment to D34689: [LLD][ELF] Pre-create ThunkSections at Target specific intervals.

General ping for the remaining range thunks patches. D34692 contains a large comment that explains the overall design.

  • D34689 Pre-create ThunkSections at Target specific intervals (this one)
  • D34691 Introduce range extension thunks for ARM
  • D34692 Add support for multiple passes to createThunks()
Tue, Aug 15, 9:08 AM
peter.smith created D36749: [LLD][ELF][AArch64] Complete implementation of -fix-cortex-a53-843419.
Tue, Aug 15, 8:54 AM
peter.smith added a dependent revision for D36745: [LLD][ELF] Always write non-immediate bits for AArch64 branch instruction.: D36749: [LLD][ELF][AArch64] Complete implementation of -fix-cortex-a53-843419.
Tue, Aug 15, 8:54 AM
peter.smith added a dependent revision for D36739: [LLD][ELF] Move fixSectionAlignments() before first call to assignAddresses(): D36749: [LLD][ELF][AArch64] Complete implementation of -fix-cortex-a53-843419.
Tue, Aug 15, 8:54 AM
peter.smith added a dependent revision for D36742: [LLD][ELF][AArch64] Implement scanner for Cortex-A53 Erratum 843419: D36749: [LLD][ELF][AArch64] Complete implementation of -fix-cortex-a53-843419.
Tue, Aug 15, 8:54 AM
peter.smith created D36745: [LLD][ELF] Always write non-immediate bits for AArch64 branch instruction..
Tue, Aug 15, 8:23 AM
peter.smith created D36742: [LLD][ELF][AArch64] Implement scanner for Cortex-A53 Erratum 843419.
Tue, Aug 15, 8:15 AM
peter.smith created D36739: [LLD][ELF] Move fixSectionAlignments() before first call to assignAddresses().
Tue, Aug 15, 7:50 AM
peter.smith added a comment to D36675: [ARM][Compiler-rt] Fix AEABI builtins to correctly pass arguments to non-AEABI functions on HF targets.

Thanks for making the changes. If this is covered by an existing test case I'm happy.

Tue, Aug 15, 2:57 AM

Mon, Aug 14

peter.smith added a comment to D36675: [ARM][Compiler-rt] Fix AEABI builtins to correctly pass arguments to non-AEABI functions on HF targets.

By my reading of the AAPCS http://infocenter.arm.com/help/topic/com.arm.doc.ihi0042f/IHI0042F_aapcs.pdf (5.1.2.1 VFP register usage conventions (VFP v2, v3 and the Advanced SIMD Extension)
"Registers s16-s31 (d8-d15, q4-q7) must be preserved across subroutine calls; registers s0-s15 (d0-d7, q0-q3) do not need to be preserved (and can be used for passing arguments or returning results in standard procedure-call variants). Registers d16-d31 (q8-q15), if present, do not need to be preserved."
So I don't think that when calling __aeabi_fcmp the caller can rely on s0 and s1 not being clobbered. There are some other examples in compiler-rt that I've seen that do this for example comparef2.S.

Mon, Aug 14, 9:48 AM
peter.smith added a comment to D36675: [ARM][Compiler-rt] Fix AEABI builtins to correctly pass arguments to non-AEABI functions on HF targets.

The code changes look fine to me. I haven't managed to find an existing test case that explicitly calls aeabi_fcmp and aeabi_dcmp for a hard float target. Would it be possible to add one so that we can make sure that we catch any future problems?

Mon, Aug 14, 7:08 AM

Thu, Aug 10

peter.smith added a comment to D36576: Fix -fPIC handling on arm64.

As well as strings it seems like absolute references are also used for global variables that are DSO local. Always going via the GOT is one possible solution, however I don't think it is necessarily the best solution as there are PC relative versions of the MOVW relocations such as R_AARCH64_MOVW_PREL_G0. These could be used to load the offset to the DSO local rather than going via the GOT. Unfortunately these relocations don't seem to be implemented yet in AArch64 so it looks like going via the GOT is better than producing a non-PIC sequence.

Thu, Aug 10, 7:26 AM
peter.smith added a comment to D36507: [ARM] GlobalISel: Select globals in PIC mode.

Thanks for the update. I'm happy with the decision to not support MOVT/MOVW in ELF at this stage. I've no further comments.

Thu, Aug 10, 5:30 AM

Wed, Aug 9

peter.smith added a comment to D36507: [ARM] GlobalISel: Select globals in PIC mode.

A potential drawback of using MOVW and MOVT in ELF is that the maximum immediate that can be used is a signed 16-bit value due to the constraint in ARMELF Section 4.6.1.1

Wed, Aug 9, 8:36 AM

Tue, Aug 8

peter.smith added a comment to D34689: [LLD][ELF] Pre-create ThunkSections at Target specific intervals.

Yes thank you; I seem to have developed a habit for transposing numbers when typing. I would obviously like to get this functionality in as well, and will be happy to make any requested changes or provide further explanation. In the meantime I'll keep rebasing them when they fail to merge.

Tue, Aug 8, 2:10 AM

Mon, Aug 7

peter.smith added inline comments to D36351: [lld][ELF] Add profile guided section layout.
Mon, Aug 7, 6:53 AM · lld
peter.smith added a comment to D34689: [LLD][ELF] Pre-create ThunkSections at Target specific intervals.

General ping for the remaining range thunks patches. D34692 contains a large comment that explains the overall design.

  • D34689 Pre-create ThunkSections at Target specific intervals (this one)
  • D34691 Introduce range extension thunks for ARM
  • D34692 Add support for multiple passes to createThunks()
Mon, Aug 7, 2:32 AM
peter.smith updated the diff for D35413: [LLD][ELF] Add DefinedInThunk to SymbolBody to remove need for hash lookup.

Rebased patch, no other changes.

Mon, Aug 7, 2:18 AM
peter.smith updated the diff for D34692: [LLD][ELF] Add support for multiple passes to createThunks().

Thanks for the comments, I've updated the diff to add branch islands and corrected the space before the full stop. No other changes to the code.

Mon, Aug 7, 2:16 AM

Tue, Aug 1

peter.smith added a comment to D36138: [ELF] - Don't segfault when accessing location counter inside MEMORY command..

I don't know whether it helps much at all, but here goes. The idea behind CurAddressState was to make sure we kept together all the information that needed to be cleared between successive calls to assignAddresses(). The two places I could spot from our existing test cases was that processCommands() and assignAddresses() that traversed the command list and evaluated expressions so that is where I thought that getSymbolValue() would actually be evaluated.

Tue, Aug 1, 6:51 AM
peter.smith added a comment to D34689: [LLD][ELF] Pre-create ThunkSections at Target specific intervals.

General ping for the remaining range thunks patches. If there is anything that I can do to make these easier to review please let me know? D34692 contains a large comment that explains the overall design.

  • D34689 Pre-create ThunkSections at Target specific intervals (this one)
  • D34691 Introduce range extension thunks for ARM
  • D34692 Add support for multiple passes to createThunks()
Tue, Aug 1, 1:21 AM

Mon, Jul 31

peter.smith added a comment to D35742: [Driver] Register effective triple before get arm float abi..

Thanks for adding the extra tests. It seems like getARMFloatABI used to compute its own EffectiveTriple but this was changed to retrieve a cached value D22596, this is a pity for options . With this in mind I think putting the RegisterEffectiveTriple within the scope of OPT_print_libgcc_file_name. I agree with compnerd that hoisting it out of the switch makes the flow of the code easier to read, but no strong opinions. No further comments from me.

Mon, Jul 31, 2:57 AM

Fri, Jul 28

peter.smith added reviewers for D35742: [Driver] Register effective triple before get arm float abi.: compnerd, jroelofs.

Added compnerd and jroelofs to see if they have any comments or concerns.

Fri, Jul 28, 5:44 AM
peter.smith added a comment to D35742: [Driver] Register effective triple before get arm float abi..

The change looks like an improvement to me. I've got some comments/suggestions although I don't have any strong opinions here.

  • It isn't obvious from the context of Driver.cpp why ComputeEffectiveTriple() needs to be called. After a bit of searching I found the call to getArchNameForCompilerRTLib that contained the call to getARMFloatABI. Is is worth moving the call to ComputeEffectiveTriple just before the call to getARMFloatABI()?
  • It would be good to add some tests for some more targets such as --target=arm-linux-gnueabihf and --target=arm-linux-gnueabi -mfloat-abi=hard
Fri, Jul 28, 5:43 AM
peter.smith updated the diff for D34692: [LLD][ELF] Add support for multiple passes to createThunks().

Rebased to account for r309311 Merge OutputSectionCommand and OutputSection. No other changes.

Fri, Jul 28, 3:32 AM
peter.smith updated the diff for D34691: [LLD][ELF] Introduce range extension thunks for ARM.

Rebased to account for r309311 Merge OutputSectionCommand and OutputSection. No other changes.

Fri, Jul 28, 3:28 AM
peter.smith updated the diff for D34689: [LLD][ELF] Pre-create ThunkSections at Target specific intervals.

Rebased to account for r309311 Merge OutputSectionCommand and OutputSection. No other changes.

Fri, Jul 28, 3:24 AM
peter.smith abandoned D34950: [compiler-rt][builtins] XFAIL tests involving complex divide for ARM hard float targets.

Abandoning this change as D35538 makes this unnecessary.

Fri, Jul 28, 3:18 AM

Thu, Jul 27

peter.smith updated the diff for D35904: [ARM] Add test to check PCS of ARM ABI runtime floating point helpers.

Updated diff to use output of utils/update_llc_test_checks.py for checks.

Thu, Jul 27, 8:17 AM
peter.smith added a comment to D35904: [ARM] Add test to check PCS of ARM ABI runtime floating point helpers.

Thanks for pointing out update_llc_test_checks.py. I'll have a play with that and will update the diff when I've got a better one.

Thu, Jul 27, 5:24 AM

Wed, Jul 26

peter.smith added a comment to D35538: [CodeGen][ARM] ARM runtime helper functions are not always soft-fp.

I've created D35904 to cover adding a test for LLVMs use of the runtime helper functions.

Wed, Jul 26, 10:30 AM
peter.smith created D35904: [ARM] Add test to check PCS of ARM ABI runtime floating point helpers.
Wed, Jul 26, 10:29 AM
peter.smith updated the diff for D35538: [CodeGen][ARM] ARM runtime helper functions are not always soft-fp.

Thanks both for the comments, I've added the missing punctuation and have expanded the tests so that we anchor the check to the function and check for the operation that will be lowered by the back-end.

Wed, Jul 26, 3:45 AM

Tue, Jul 25

peter.smith updated the diff for D35538: [CodeGen][ARM] ARM runtime helper functions are not always soft-fp.

I've added a clang test that will check that none of the floating point helper functions defined in the Runtime ABI for the ARM Architecture are directly called by clang. Given that the calling convention decisions for these helpers are made in llvm I think the best place for a test that the correct calling convention is in llvm. I'll start working on that and post in a separate review. Please let me know if I'm not on the right lines.

Tue, Jul 25, 8:46 AM
peter.smith added a comment to D35696: Fix compiler-rt build with aarch64 using -march=armv8-a.

Regardless of the problems with clang I think having the compiler accept -mcrc imply armv8.1-a is not an acceptable workaround as it could lead to v8.1 only extensions being used by mistake.

Tue, Jul 25, 5:54 AM
peter.smith added a comment to D34689: [LLD][ELF] Pre-create ThunkSections at Target specific intervals.

Is there anything more I can do to progress the last three range thunks patches? I think I have all the outstanding comments received so far covered.

  • D34689 Pre-create ThunkSections at Target specific intervals (this one)
  • D34691 Introduce range extension thunks for ARM
  • D34692 Add support for multiple passes to createThunks()
Tue, Jul 25, 1:52 AM

Jul 21 2017

peter.smith added a comment to D35696: Fix compiler-rt build with aarch64 using -march=armv8-a.

While this may make the build work I'm not sure that this is the right long term fix. In particular the is COMPILER_RT_HAS_MCRC_FLAG is specifically tied to the -mcrc flag, I don't think that it should imply armv8.1 as this has more side-effects than just enabling the crc instructions. If clang is doing the wrong thing with regard to the -mcrc flag and __ARM_FEATURE_CRC we should fix clang/llvm rather than work around it here.

Jul 21 2017, 12:00 AM

Jul 19 2017

peter.smith added a comment to D35265: [libunwind] Handle .ARM.exidx tables without sentinel last entry.

I'm happy my comments have been addressed, no further comments.

Jul 19 2017, 8:47 AM
peter.smith added a comment to D35538: [CodeGen][ARM] ARM runtime helper functions are not always soft-fp.

Can you please add a test that shows that the AEABI functions are not given the wrong CC? Also, can you show that if someone also passes -meabi=gnu with a VFP target, that we still annotate the functions with the differing CC (since that should prefer the GNU functions over the AEABI functions).

Jul 19 2017, 7:42 AM
peter.smith updated the diff for D34692: [LLD][ELF] Add support for multiple passes to createThunks().

Rebased to account for "r308300 [ELF] - Fix member name: alignment -> Alignment. NFC.". No other changes to patch.

Jul 19 2017, 1:50 AM
peter.smith updated the diff for D34689: [LLD][ELF] Pre-create ThunkSections at Target specific intervals.

Rebased and run through clang-format to account for "r308297 - Apply clang-format. NFC.". No other changes to patch.

Jul 19 2017, 1:47 AM

Jul 18 2017

peter.smith added a comment to D35265: [libunwind] Handle .ARM.exidx tables without sentinel last entry.

I assume that this is a fix for https://bugs.llvm.org/show_bug.cgi?id=31091 ? Given that the exception being thrown from the last table is a special case I think it is worth a comment, along with a comment on why the value of nextPC has been chosen in this case. I've also made a few subjective stylistic suggestions, I'm not a contributor to libunwind so please give these little weight.

Jul 18 2017, 6:04 AM
peter.smith created D35538: [CodeGen][ARM] ARM runtime helper functions are not always soft-fp.
Jul 18 2017, 3:32 AM

Jul 17 2017

peter.smith added a comment to D34690: [LLD][ELF] Introduce target specific inBranchRange() function.

Thanks for the review, I've committed r308188. The addition of abs(unsigned - unsigned) gave me some compile warnings from clang so I decided to keep the original.

Jul 17 2017, 9:56 AM
peter.smith updated the diff for D35413: [LLD][ELF] Add DefinedInThunk to SymbolBody to remove need for hash lookup.

Thanks for the comments. I've updated the diff and renamed to LabeledThunk which I think makes sense as the Symbol labels the Thunk.

Jul 17 2017, 9:26 AM
peter.smith updated the diff for D34692: [LLD][ELF] Add support for multiple passes to createThunks().

Rebased to account for r308056 and r308057. I've also updated mergeThunks() to account for Igor's test case (thanks very much Igor!). I've taken the simple solution of making sure that the empty ThunkSections are removed from ThunkSections and NewThunkSections, a test case derived from Igor's has been added to make sure this doesn't regress. My expectation is that the vast majority of Thunks will be added in the first pass so the lack of pre-created sections in later passes shouldn't make a significant difference.

Jul 17 2017, 9:22 AM
peter.smith updated the diff for D34691: [LLD][ELF] Introduce range extension thunks for ARM.

Rebase to account for r308056 and r308057, no other changes.

Jul 17 2017, 9:16 AM
peter.smith updated the diff for D34689: [LLD][ELF] Pre-create ThunkSections at Target specific intervals.

Rebased to account for r308056 and r308057. I have also accounted for Rafael's observation in createInitialThunkSections that the spacing should subtract Target->ThunkSectionSize. I'll account for Igor's comment in D34692

Jul 17 2017, 9:14 AM
peter.smith added a comment to D34689: [LLD][ELF] Pre-create ThunkSections at Target specific intervals.

It is possible that a precreated thunk section stays empty in the first pass, but is used in the next pass. In that case, it isn't added into ISR in ThunkCreator::mergeThunks(). For example:

$ cat a.s
	.global _start, foo
.section .text.start,"ax",%progbits
_start:
	bl _start
.section .text.dummy1,"ax",%progbits
.space 0xfffffe
.section .text.foo,"ax",%progbits
foo:
	bl _start
$ llvm-mc -filetype=obj -triple=thumbv7a-none-linux-gnueabi a.s -o a.o
$ ld.lld a.o -o a.out
$ objdump -d a.out
a.out:     file format elf32-littlearm


Disassembly of section .text:

00011000 <_start>:
   11000:	f7ff effe 	blx	11000 <_start>

00011004 <__Thumbv7ABSLongThunk__start>:
   11004:	f241 0c00 	movw	ip, #4096	; 0x1000
   11008:	f2c0 0c01 	movt	ip, #1
   1100c:	4760      	bx	ip
	...

01011002 <__Thumbv7ABSLongThunk__start>:
	...

0101100c <foo>:
 101100c:	f7ff fff9 	bl	1011002 <__Thumbv7ABSLongThunk__start>

By the way, this sample shows one additional issue: redundant thunks are not removed.

Jul 17 2017, 5:56 AM
peter.smith added a comment to D35473: [ELF] compareByFilePosition requires stable_sort.

I discovered this because the .ARM.exidx end sentinel was getting incorrectly reordered away from the end of the section, leading to unwinding failing in certain binaries. CC @peter.smith, in case you've run into any similar issues.

Unfortunately, I'm not sure how to write a test case for this. I was using -ffunction-sections so I would end up with multiple .ARM.exidx.* sections, so there's a reasonable chance of the sentinel getting incorrectly reordered, but there's no guarantee, since it depends on the underlying std::sort implementation (which could potentially even be randomized). Any ideas?

Jul 17 2017, 5:41 AM
peter.smith added a comment to D31220: [builtins][ARM] Select correct code fragments when compiling for Thumb1/Thum2/ARM ISA.

I'm happy with the changes, probably best to wait for compnerd to approve though.

Jul 17 2017, 3:15 AM

Jul 14 2017

peter.smith created D35413: [LLD][ELF] Add DefinedInThunk to SymbolBody to remove need for hash lookup.
Jul 14 2017, 6:06 AM
peter.smith added inline comments to D34692: [LLD][ELF] Add support for multiple passes to createThunks().
Jul 14 2017, 6:03 AM
peter.smith updated the diff for D34692: [LLD][ELF] Add support for multiple passes to createThunks().

Thanks very much for the comments. I've made the suggested changes apart from moving the mapping from Symbol to Thunk to SymbolBody. I'll submit a separate review for that.

Jul 14 2017, 6:02 AM
peter.smith added a comment to D31220: [builtins][ARM] Select correct code fragments when compiling for Thumb1/Thum2/ARM ISA.

Just a few comments on the ARM specific terminology. I think it would be better to match the existing documentation such as using state for ARM/Thumb and not mode.

Jul 14 2017, 3:08 AM

Jul 13 2017

peter.smith abandoned D31665: [LLD][ELF] Add test cases for range extension thunks (no linkerscripts).

I've added these tests into D34691 and D34692 so this revision is no longer needed.

Jul 13 2017, 9:13 AM
peter.smith abandoned D31666: [LLD][ELF] Add test cases for range extension thunks using linker scripts.

I've added these tests into D34691 so this revision is no longer needed.

Jul 13 2017, 9:12 AM
peter.smith updated the diff for D34692: [LLD][ELF] Add support for multiple passes to createThunks().

I've added a large summary comment, as well as updating some more of the comments to better explain the Thunk Implementation. I've also added in the remainder of the tests from D31665 that need this patch to work correctly.

Jul 13 2017, 9:09 AM
peter.smith updated the diff for D34691: [LLD][ELF] Introduce range extension thunks for ARM.

Updated to add tests from D31665 and D31666.

Jul 13 2017, 9:04 AM
peter.smith updated the diff for D34689: [LLD][ELF] Pre-create ThunkSections at Target specific intervals.

Updated diff to return nullptr from ThunkSection::getTargetInputSection() when there are no Thunks.

Jul 13 2017, 9:01 AM
peter.smith added a comment to D34689: [LLD][ELF] Pre-create ThunkSections at Target specific intervals.

Thanks for the comment, I've put a response inline and hope to update the diff later today.

Jul 13 2017, 5:23 AM

Jul 12 2017

peter.smith added a comment to D34692: [LLD][ELF] Add support for multiple passes to createThunks().

Understood. I'll attempt to write a comment in the code first. If it gets too big then I suppose it could go into docs as an rst file. I'll update as soon as it is ready.

Jul 12 2017, 7:56 AM
peter.smith updated the diff for D34691: [LLD][ELF] Introduce range extension thunks for ARM.

Rebased diff on top of changes to D34689.

Jul 12 2017, 7:33 AM
peter.smith added inline comments to D34691: [LLD][ELF] Introduce range extension thunks for ARM.
Jul 12 2017, 7:29 AM
peter.smith updated the diff for D34689: [LLD][ELF] Pre-create ThunkSections at Target specific intervals.

Updated diff to address review comments.

Jul 12 2017, 7:08 AM
peter.smith added a comment to D34689: [LLD][ELF] Pre-create ThunkSections at Target specific intervals.

Thanks very much for the review comments, I'll update the diff shortly.

Jul 12 2017, 6:53 AM
peter.smith added a comment to D34690: [LLD][ELF] Introduce target specific inBranchRange() function.

My preference is to be precise as I think it makes reasoning about the behavior of the linker easier. From experience with ARM's proprietary linker, which got progressively more precise the main benefits were:

  • Being precise means that the same range measurement function can be used in multiple places and is consistent with the relocation range check.
  • It makes it simpler to write test cases at the extremes of range, and also to explain to users why the linker has generated a range-thunk when the branch should have been in range. This is not a problem for Linux like systems, but is important in embedded systems with non-contiguous memory.

-It makes it simpler to track down bugs, as this feature is most likely to trigger with large complicated test cases that users are often reluctant to share. Having the range match the relocation overflow check is useful in ruling out some problems.

Jul 12 2017, 2:21 AM

Jul 11 2017

peter.smith updated the diff for D34689: [LLD][ELF] Pre-create ThunkSections at Target specific intervals.

Updated diffs to add additional comments. No change to code.

Jul 11 2017, 4:55 AM
peter.smith added a comment to D34689: [LLD][ELF] Pre-create ThunkSections at Target specific intervals.

Thanks for the comments, I'll update the diff.

Jul 11 2017, 4:52 AM

Jul 7 2017

peter.smith updated the diff for D34689: [LLD][ELF] Pre-create ThunkSections at Target specific intervals.

Updated to incorporate George's comments. I've applied both suggestions.

Jul 7 2017, 3:25 AM

Jul 6 2017

peter.smith updated the diff for D34692: [LLD][ELF] Add support for multiple passes to createThunks().

Rebased, no other changes.

Jul 6 2017, 5:43 AM
peter.smith updated the diff for D34691: [LLD][ELF] Introduce range extension thunks for ARM.

Rebased, no other differences.

Jul 6 2017, 5:29 AM
peter.smith updated the diff for D34689: [LLD][ELF] Pre-create ThunkSections at Target specific intervals.

Rebased, no other changes.

Jul 6 2017, 5:26 AM
peter.smith updated the diff for D34345: [LLD][ELF] Extract temporary state used in assignAddresses().

I've updated to follow Rafael's suggestion to extract the state into a separate struct. The diff is mostly a replace Cur<State> with CurAddressState-><State>.

Jul 6 2017, 5:23 AM

Jul 5 2017

peter.smith added a comment to D34950: [compiler-rt][builtins] XFAIL tests involving complex divide for ARM hard float targets.

Thanks very much for the comment, I'm not sure that I've understood it correctly though as I'm not sure whether the command line options in the comment are clang or gcc options. I think that they are clang?

Jul 5 2017, 6:45 AM

Jul 4 2017

peter.smith added a comment to D34035: [LLD][ELF] Introduce Thunk reuse compatibility.

Is there anything I can do to help get the Range Thunks patches looked at? To avoid pinging 11 separate patches I've listed all the reviews here and what the intention behind them is. I'm happy to restructure these in a different way if that would help?

Jul 4 2017, 2:29 AM
peter.smith updated the diff for D34344: [LLD][ELF] Extract allocateHeaders() from assignAddresses().

Rebased to account for r307039

Jul 4 2017, 2:02 AM

Jul 3 2017

peter.smith created D34950: [compiler-rt][builtins] XFAIL tests involving complex divide for ARM hard float targets.
Jul 3 2017, 8:29 AM

Jun 30 2017

peter.smith updated the diff for D34634: [LLD][ELF] Full patch for range thunks (not for review).

Rebased against TOT for Alessandro

Jun 30 2017, 1:27 AM

Jun 28 2017

peter.smith created D34751: [ARM] ldr pc,=expression should be allowed in Thumb2.
Jun 28 2017, 7:34 AM
peter.smith updated the diff for D34344: [LLD][ELF] Extract allocateHeaders() from assignAddresses().

Thanks for the comment, I've removed the redundant return.

Jun 28 2017, 3:17 AM

Jun 27 2017

peter.smith added a comment to D31666: [LLD][ELF] Add test cases for range extension thunks using linker scripts.

This is the final 11/11 patch of the range thunks series.

Jun 27 2017, 8:22 AM
peter.smith updated the diff for D31666: [LLD][ELF] Add test cases for range extension thunks using linker scripts.

Updated diff to account for changes in padding between sections and switch to use InputSectionDescriptions rather than OutputSections.

Jun 27 2017, 8:22 AM
peter.smith updated the diff for D31665: [LLD][ELF] Add test cases for range extension thunks (no linkerscripts).

Updated diff to reflect recent changes to padding between sections. This is patch 10/11 of the range thunks implementation.

Jun 27 2017, 8:19 AM
peter.smith created D34692: [LLD][ELF] Add support for multiple passes to createThunks().
Jun 27 2017, 8:17 AM
peter.smith created D34691: [LLD][ELF] Introduce range extension thunks for ARM.
Jun 27 2017, 8:06 AM
peter.smith created D34690: [LLD][ELF] Introduce target specific inBranchRange() function.
Jun 27 2017, 7:58 AM
peter.smith created D34689: [LLD][ELF] Pre-create ThunkSections at Target specific intervals.
Jun 27 2017, 7:54 AM
peter.smith created D34688: [LLD][ELF] Add call to assignAddresses() before createThunks() [NFC].
Jun 27 2017, 7:45 AM
peter.smith added a comment to D34345: [LLD][ELF] Extract temporary state used in assignAddresses().

This is patch 4/11 of range thunks although it can be applied independently.

Jun 27 2017, 7:41 AM
peter.smith added a comment to D34344: [LLD][ELF] Extract allocateHeaders() from assignAddresses().

This is patch 3/11 of range thunks although it can be applied independently.

Jun 27 2017, 7:40 AM
peter.smith added a comment to D34037: [LLD][ELF] Allow multiple thunks to be added for a symbol..

This is patch 2/11 of range thunks. Although it can be independently applied from patch 1.

Jun 27 2017, 7:39 AM