- Dec 08, 2012
-
-
Bill Wendling authored
This function sets the `_exportDynamic' ivar. When that's set, we export all symbols (e.g. we don't run the internalize pass). This is equivalent to the `--export-dynamic' linker flag in GNU land: --export-dynamic When creating a dynamically linked executable, add all symbols to the dynamic symbol table. The dynamic symbol table is the set of symbols which are visible from dynamic objects at run time. If you do not use this option, the dynamic symbol table will normally contain only those symbols which are referenced by some dynamic object mentioned in the link. If you use dlopen to load a dynamic object which needs to refer back to the symbols defined by the program, rather than some other dynamic object, then you will probably need to use this option when linking the program itself. The Darwin linker will support this via the `-export_dynamic' flag. We should modify clang to support this via the `-rdynamic' flag. llvm-svn: 169656
-
Jim Grosbach authored
It was a nasty oversight that we didn't include this when we added this API in the first place. Blech. rdar://12839439 llvm-svn: 169653
-
Bill Wendling authored
llvm-svn: 169651
-
- Dec 07, 2012
-
-
Eli Bendersky authored
SmallString. This makes it possible to use the length-erased SmallVectorImpl in the interface without imposing buffer size. Thus, the size of MCInstFragment is back down since a preallocated 8-byte contents buffer is enough. It would be generally a good idea to rid all the fragments of SmallString as contents, because a vector just makes more sense. llvm-svn: 169644
-
Michael Ilseman authored
llvm-svn: 169637
-
Ted Kremenek authored
llvm-svn: 169629
-
Eli Bendersky authored
which removes code duplication and prepares the ground for future additions. Full discussion: http://lists.cs.uiuc.edu/pipermail/llvm-commits/Week-of-Mon-20121203/158233.html llvm-svn: 169626
-
Eli Bendersky authored
duplicate implementations in format-specific streamers. llvm-svn: 169613
-
Tim Northover authored
Before this patch, when you objdump an LLVM-compiled file, objdump tried to decode data-in-code sections as if they were code. This patch adds the missing Mapping Symbols, as defined by "ELF for the ARM Architecture" (ARM IHI 0044D). Patch based on work by Greg Fitzgerald. llvm-svn: 169609
-
Logan Chien authored
llvm-svn: 169603
-
Jakob Stoklund Olesen authored
Like the MachineInstrBuilder, this class makes it easier to build bundles of MachineInstrs. llvm-svn: 169584
-
Jakob Stoklund Olesen authored
This is still a work in progress. The purpose is to make bundling and unbundling operations explicit, and to catch errors where bundles are broken or created inadvertently. The old IsInsideBundle flag is replaced by two MI flags: BundledPred which has the same meaning as IsInsideBundle, and BundledSucc which is set on instructions that are bundled with a successor. Having two flags provdes redundancy to detect when a bundle is inadvertently torn by a splice() or insert(), and it makes it possible to write bundle iterators that don't need to peek at adjacent instructions. The new flags can't be manipulated directly (once setIsInsideBundle is gone). Instead there are MI functions to make and break bundle bonds. The setIsInsideBundle function will be removed in a future commit. It should be replaced by bundleWithPred(). llvm-svn: 169583
-
Ted Kremenek authored
llvm-svn: 169572
-
Eli Bendersky authored
llvm-svn: 169565
-
- Dec 06, 2012
-
-
Pedro Artigas authored
fixed valgrind issues of prior commit, this change applies r169456 changes back to the tree with fixes. on darwin no valgrind issues exist in the tests that used to fail. original change description: change MCContext to work on the doInitialization/doFinalization model reviewed by Evan Cheng <evan.cheng@apple.com> llvm-svn: 169553
-
Ted Kremenek authored
Jordan and I discussed this, and we don't want this in the API. llvm-svn: 169541
-
Evan Cheng authored
understand target implementation of any_extend / extload, just generate zero_extend in place of any_extend for liveouts when the target knows the zero_extend will be implicit (e.g. ARM ldrb / ldrh) or folded (e.g. x86 movz). rdar://12771555 llvm-svn: 169536
-
Jordan Rose authored
This is an alternative to the ImmutableMapRef interface where a factory should still be canonicalizing by default, but in certain cases an improvement can be made by delaying the canonicalization. llvm-svn: 169532
-
Bill Wendling authored
Some languages, e.g. Ada and Pascal, allow you to specify that the array bounds are different from the default (1 in these cases). If we have a lower bound that's non-default, then we emit the lower bound. We also calculate the correct upper bound in those cases. llvm-svn: 169484
-
NAKAMURA Takumi authored
It broke many builders. llvm-svn: 169462
-
Evan Cheng authored
and extload's. If they are implemented as zero-extend, or implicitly zero-extend, then this can enable more demanded bits optimizations. e.g. define void @foo(i16* %ptr, i32 %a) nounwind { entry: %tmp1 = icmp ult i32 %a, 100 br i1 %tmp1, label %bb1, label %bb2 bb1: %tmp2 = load i16* %ptr, align 2 br label %bb2 bb2: %tmp3 = phi i16 [ 0, %entry ], [ %tmp2, %bb1 ] %cmp = icmp ult i16 %tmp3, 24 br i1 %cmp, label %bb3, label %exit bb3: call void @bar() nounwind br label %exit exit: ret void } This compiles to the followings before: push {lr} mov r2, #0 cmp r1, #99 bhi LBB0_2 @ BB#1: @ %bb1 ldrh r2, [r0] LBB0_2: @ %bb2 uxth r0, r2 cmp r0, #23 bhi LBB0_4 @ BB#3: @ %bb3 bl _bar LBB0_4: @ %exit pop {lr} bx lr The uxth is not needed since ldrh implicitly zero-extend the high bits. With this change it's eliminated. rdar://12771555 llvm-svn: 169459
-
Pedro Artigas authored
change MCContext to work on the doInitialization/doFinalization model reviewed by Evan Cheng <evan.cheng@apple.com> llvm-svn: 169456
-
Andrew Trick authored
llvm-svn: 169443
-
- Dec 05, 2012
-
-
Eli Bendersky authored
This is more consistent with other vectors in this code. In addition, I ran some tests compiling a large program and >96% of fragments have 4 or less fixups, so SmallVector<4> is a good optimization. llvm-svn: 169433
-
Andrew Trick authored
Now that live register units are tracked individually, the code can be simplified. llvm-svn: 169426
-
Andrew Trick authored
This is much simpler to reason about, more efficient, and fixes some corner cases involving implicit super-register defs. Fixed rdar://12797931. llvm-svn: 169425
-
Eli Bendersky authored
llvm-svn: 169419
-
Michael J. Spencer authored
Change member types of RuntimeFunction and UnwindInfo from uint64_t to uint32_t: These members represent addresses. According to MSDN, they are image relative, that is, they are 32-bit offsets from the starting address of the image that contains the function table entry. See MSDN for more information: RUNTIME_FUNCTION: http://msdn.microsoft.com/en-us/library/ft9x1kdx.aspx UNWIND_INFO: http://msdn.microsoft.com/en-us/library/ddssxxy8.aspx Make Win64.h platform-neutral: The standard types unit8_t, uint16_t and uint32_t are replaced with their counterparts from Endian.h. Accessor functions are introduced to replace bit fields. Patch by João Matos and Kai Nacke. llvm-svn: 169414
-
Eli Bendersky authored
good for enacpsulation anyway. llvm-svn: 169407
-
Andrew Trick authored
llvm-svn: 169401
-
Benjamin Kramer authored
Also use the portable (ugly) format string macros, for MSVC compatibility. llvm-svn: 169396
-
Jakob Stoklund Olesen authored
A MachineInstr can only ever be constructed by CreateMachineInstr() and CloneMachineInstr(), and those factories don't use the removed constructors. llvm-svn: 169395
-
Kevin Enderby authored
This is for the lldb team so most of but not all of the values are to be printed as hex with this option. Some small values like the scale in an X86 address were requested to printed in decimal without the leading 0x. There may be some tweaks need to places that may still be in decimal that they want in hex. Specially for arm. I made my best guess. Any tweaks from here should be simple. I also did the best I know now with help from the C++ gurus creating the cleanest formatImm() utility function and containing the changes. But if someone has a better idea to make something cleaner I'm all ears and game for changing the implementation. rdar://8109283 llvm-svn: 169393
-
Pedro Artigas authored
- Added calls to doInitialization/doFinalization to immutable passes - fixed ordering of calls to doFinalization to be the reverse of the pass run order due to potential dependencies - fixed machine module info to operate in the doInitialization/doFinalization model, also fixes some FIXMEs reviewed by Evan Cheng <evan.cheng@apple.com> llvm-svn: 169391
-
Andrew Trick authored
At build-time register pressure was always computed in terms of register units. But the compile-time API was expressed in terms of register classes because it was intended for virtual registers (and physical register units weren't yet used anywhere in codegen). Now that the codegen uses physreg units consistently, prepare for tracking register pressure also in terms of live units, not live registers. llvm-svn: 169360
-
Andrew Trick authored
llvm-svn: 169359
-
Andrew Trick authored
llvm-svn: 169358
-
Michael J. Spencer authored
llvm-svn: 169344
-
- Dec 04, 2012
-
-
Bill Wendling authored
The count attribute is more accurate with regards to the size of an array. It also obviates the upper bound attribute in the subrange. We can also better handle an unbound array by setting the count to -1 instead of the lower bound to 1 and upper bound to 0. llvm-svn: 169312
-
Eli Bendersky authored
llvm-svn: 169293
-