- Feb 25, 2014
-
-
Logan Chien authored
The function with uwtable attribute might be visited by the stack unwinder, thus the link register should be considered as clobbered after the execution of the branch and link instruction (i.e. the definition of the machine instruction can't be ignored) even when the callee function are marked with noreturn. llvm-svn: 202165
-
Alp Toker authored
llvm-svn: 202107
-
Nick Lewycky authored
llvm-svn: 202096
-
- Feb 24, 2014
-
-
Matt Arsenault authored
llvm-svn: 202074
-
Matt Arsenault authored
llvm-svn: 202073
-
Rafael Espindola authored
After this I will set the default back to F_None. The advantage is that before this patch forgetting to set F_Binary would corrupt a file on windows. Forgetting to set F_Text produces one that cannot be read in notepad, which is a better failure mode :-) llvm-svn: 202052
-
Rafael Espindola authored
This will make it easier to switch the default to being binary files. llvm-svn: 202042
-
- Feb 23, 2014
-
-
Benjamin Kramer authored
No functionality change. llvm-svn: 201974
-
- Feb 22, 2014
-
-
Manman Ren authored
llvm-svn: 201944
-
Logan Chien authored
This commit moves getSLEB128Size() and getULEB128Size() from MCAsmInfo to LEB128.h and removes some copy-and-paste code. Besides, this commit also adds some unit tests for the LEB128 functions. llvm-svn: 201937
-
Quentin Colombet authored
The API expects an ISD opcode, not an IR opcode. Fixes a regression for R600. Related to <rdar://problem/15519855>. llvm-svn: 201923
-
Quentin Colombet authored
CodeGenPrepare uses extensively TargetLowering which is part of libLLVMCodeGen. This is a layer violation which would introduce eventually a dependence on CodeGen in ScalarOpts. Move CodeGenPrepare into libLLVMCodeGen to avoid that. Follow-up of <rdar://problem/15519855> llvm-svn: 201912
-
Quentin Colombet authored
shifted mask rather than masking and shifting separately. The patch adds this transformation to the DAGCombiner: (shl (and (setcc:i8v16 ...) N01C) N1C) -> (and (setcc:i8v16 ...) N01C<<N1C) <rdar://problem/16054492> Patch by Adam Nemet <anemet@apple.com> llvm-svn: 201906
-
Juergen Ributzka authored
[Stackmaps] Move the target-independent frame index elimination for stackmaps and patchpoints into target-specific code. The lowering of the frame index for stackmaps and patchpoints requires some target-specific magic and should therefore be handled in the target-specific eliminateFrameIndex method. This is related to <rdar://problem/16106219> llvm-svn: 201904
-
- Feb 21, 2014
-
-
David Blaikie authored
We were just emitting a label for this section for no real reason - this caused us to emit the section even though we never put anything in it. Not bothering with a test (though not adamantly anti-test) because it seems somewhat arbitrary to test for the absence of this section anymore than the absence of any other section. llvm-svn: 201876
-
Rafael Espindola authored
llvm-svn: 201870
-
Rafael Espindola authored
This replaces the old NoIntegratedAssembler with at TargetOption. This is more flexible and will be used to forward clang's -no-integrated-as option. llvm-svn: 201836
-
- Feb 20, 2014
-
-
Nick Lewycky authored
llvm-svn: 201758
-
Nick Lewycky authored
Simplify the implementation of getUnderlyingObjectsForInstr, without intending to change the semantics at all. llvm-svn: 201754
-
Eric Christopher authored
passing down an AsmPrinter instance so we could compute the size of the block which could be target specific. All of the test cases in the unittest don't have any target specific data so we can use a NULL AsmPrinter there. This also depends upon block data being added as integers. We can now hash the entire fission-cu.ll compile unit so turn the flag on there with the hash value. llvm-svn: 201752
-
Eric Christopher authored
method to actually set it in the class to avoid computing it multiple times. llvm-svn: 201751
-
Eric Christopher authored
llvm-svn: 201750
-
Eric Christopher authored
llvm-svn: 201747
-
Eric Christopher authored
llvm-svn: 201745
-
- Feb 19, 2014
-
-
Rafael Espindola authored
TargetLoweringBase is implemented in CodeGen, so before this patch we had a dependency fom Target to CodeGen. This would show up as a link failure of llvm-stress when building with -DBUILD_SHARED_LIBS=ON. This fixes pr18900. llvm-svn: 201711
-
Rafael Espindola authored
r201608 made llvm corretly handle private globals with MachO. r201622 fixed a bug in it and r201624 and r201625 were changes for using private linkage, assuming that llvm would do the right thing. They all got reverted because r201608 introduced a crash in LTO. This patch includes a fix for that. The issue was that TargetLoweringObjectFile now has to be initialized before we can mangle names of private globals. This is trivially true during the normal codegen pipeline (the asm printer does it), but LTO has to do it manually. llvm-svn: 201700
-
Daniel Jasper authored
This causes the LLVMgold plugin to segfault. More information on the replies to r201608. llvm-svn: 201669
-
Rafael Espindola authored
When outputting an object we check its section to find its name, but when looking for the section with -ffunction-section we look for the symbol name. Break the loop by requesting a name with the private prefix when constructing the section name. This matches the behavior before r201608. llvm-svn: 201622
-
- Feb 18, 2014
-
-
Rafael Espindola authored
The IR @foo = private constant i32 42 is valid, but before this patch we would produce an invalid MachO from it. It was invalid because it would use an L label in a section where the liker needs the labels in order to atomize it. One way of fixing it would be to just reject this IR in the backend, but that would not be very front end friendly. What this patch does is use an 'l' prefix in sections that we know the linker requires symbols for atomizing them. This allows frontends to just use private and not worry about which sections they go to or how the linker handles them. One small issue with this strategy is that now a symbol name depends on the section, which is not available before codegen. This is not a problem in practice. The reason is that it only happens with private linkage, which will be ignored by the non codegen users (llvm-nm and llvm-ar). llvm-svn: 201608
-
Rafael Espindola authored
This is quiet a bit less confusing now that TargetData was renamed DataLayout. llvm-svn: 201606
-
Rafael Espindola authored
TargetData was renamed DataLayout back in r165242. llvm-svn: 201581
-
- Feb 16, 2014
-
-
Eric Christopher authored
alongside DIEBlock and replace uses accordingly. Use DW_FORM_exprloc in DWARF4 and later code. Update testcases. Adding a DIELoc instead of using extra forms inside DIEBlock so that we can keep location expressions separate from other uses. No direct use at the moment, however, it's not a lot of code and using a separately named class keeps it somewhat more obvious what's going on in various locations. llvm-svn: 201481
-
- Feb 15, 2014
-
-
David Blaikie authored
This broke in r185459 while TLS support was being generalized to handle non-symbol TLS representations. I thought about/tried having an enum rather than a bool to track the TLS-ness of the address table entry, but namespaces and naming seemed more hassle than it was worth for only one caller that needed to specify this. llvm-svn: 201469
-
David Blaikie authored
llvm-svn: 201467
-
David Blaikie authored
Type units will share the statement list of their defining compile unit. This is a tradeoff that reduces .o debug info size at the cost of some linked debug info size (since the contents of those string tables won't be deduplicated along with the type unit) which seems right for now. llvm-svn: 201445
-
- Feb 14, 2014
-
-
David Blaikie authored
These types have an out of line virtual function each (emitHeader at least) so they won't have weak vtables - no need for more than that. llvm-svn: 201444
-
David Blaikie authored
DwarfUnit: Remove unnecessary (void)t; that was previously used to suppress -Wunused-member-variable llvm-svn: 201442
-
David Blaikie authored
DwarfUnit: Refactor out DW_AT_stmt_list creation into common function for fission and non-fission cases This probably also addresses the FIXME in the fission case regarding multiple compile units, though I haven't tested that. This code still confuses me (the literal zero offset makes little sense, the limitations surrounding asm output I'm not sure about either - but perhaps we should just always emit one line table? Or should we not rely on .loc/.file even in assembly so we can produce the same output between asm and object output?) but this maintains the existing functionality. llvm-svn: 201441
-
Tom Stellard authored
llvm-svn: 201433
-
David Blaikie authored
Recommitting r201380 (reverted in r201389) Recommitting r201351 and r201355 (reverted in r201351 and r201355) We weren't emitting the an empty (header only) line table when the line table was empty - this made the DWARF invalid (the compile unit would point to the zero-size debug_lines section where there should've been an empty line table but there was nothing at all). Fix that, and as a consequence this works around/addresses PR18809. Also, we emit a non-empty line table to workaround a darwin linker bug, so XFAILing on darwin too. Also, mark the test as 'REQUIRES: object-emission' because it does. llvm-svn: 201429
-