- Mar 01, 2014
-
-
Venkatraman Govindaraju authored
llvm-svn: 202599
-
Venkatraman Govindaraju authored
llvm-svn: 202598
-
Venkatraman Govindaraju authored
llvm-svn: 202597
-
Venkatraman Govindaraju authored
llvm-svn: 202581
-
Venkatraman Govindaraju authored
llvm-svn: 202578
-
Venkatraman Govindaraju authored
llvm-svn: 202577
-
Venkatraman Govindaraju authored
llvm-svn: 202575
-
Venkatraman Govindaraju authored
llvm-svn: 202572
-
Venkatraman Govindaraju authored
llvm-svn: 202571
-
Venkatraman Govindaraju authored
llvm-svn: 202565
-
Venkatraman Govindaraju authored
llvm-svn: 202564
-
Venkatraman Govindaraju authored
[Sparc] Emit 'restore' instead of 'restore %g0, %g0, %g0'. This improves the readability of the generated code. llvm-svn: 202563
-
- Feb 27, 2014
-
-
Roman Divacky authored
expensive libcall. Also, Qp_neg is not implemented on at least FreeBSD. This is also what gcc is doing. llvm-svn: 202422
-
- Feb 24, 2014
-
-
Roman Divacky authored
llvm-svn: 202057
-
- Feb 23, 2014
-
-
Benjamin Kramer authored
llvm-svn: 201994
-
- Feb 19, 2014
-
-
Roman Divacky authored
llvm-svn: 201718
-
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
-
- 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
-
- Feb 13, 2014
-
-
Daniel Sanders authored
Re-commit: Demote EmitRawText call in AsmPrinter::EmitInlineAsm() and remove hasRawTextSupport() call Summary: AsmPrinter::EmitInlineAsm() will no longer use the EmitRawText() call for targets with mature MC support. Such targets will always parse the inline assembly (even when emitting assembly). Targets without mature MC support continue to use EmitRawText() for assembly output. The hasRawTextSupport() check in AsmPrinter::EmitInlineAsm() has been replaced with MCAsmInfo::UseIntegratedAs which when true, causes the integrated assembler to parse inline assembly (even when emitting assembly output). UseIntegratedAs is set to true for targets that consider any failure to parse valid assembly to be a bug. Target specific subclasses generally enable the integrated assembler in their constructor. The default value can be overridden with -no-integrated-as. All tests that rely on inline assembly supporting invalid assembly (for example, those that use mnemonics such as 'foo' or 'hello world') have been updated to disable the integrated assembler. Changes since review (and last commit attempt): - Fixed test failures that were missed due to configuration of local build. (fixes crash.ll and a couple others). - Fixed tests that happened to pass because the local build was on X86 (should fix 2007-12-17-InvokeAsm.ll) - mature-mc-support.ll's should no longer require all targets to be compiled. (should fix ARM and PPC buildbots) - Object output (-filetype=obj and similar) now forces the integrated assembler to be enabled regardless of default setting or -no-integrated-as. (should fix SystemZ buildbots) Reviewers: rafael Reviewed By: rafael CC: llvm-commits Differential Revision: http://llvm-reviews.chandlerc.com/D2686 llvm-svn: 201333
-
- Feb 12, 2014
-
-
Daniel Sanders authored
Revert r201237+r201238: Demote EmitRawText call in AsmPrinter::EmitInlineAsm() and remove hasRawTextSupport() call It introduced multiple test failures in the buildbots. llvm-svn: 201241
-
Daniel Sanders authored
Summary: AsmPrinter::EmitInlineAsm() will no longer use the EmitRawText() call for targets with mature MC support. Such targets will always parse the inline assembly (even when emitting assembly). Targets without mature MC support continue to use EmitRawText() for assembly output. The hasRawTextSupport() check in AsmPrinter::EmitInlineAsm() has been replaced with MCAsmInfo::UseIntegratedAs which when true, causes the integrated assembler to parse inline assembly (even when emitting assembly output). UseIntegratedAs is set to true for targets that consider any failure to parse valid assembly to be a bug. Target specific subclasses generally enable the integrated assembler in their constructor. The default value can be overridden with -no-integrated-as. All tests that rely on inline assembly supporting invalid assembly (for example, those that use mnemonics such as 'foo' or 'hello world') have been updated to disable the integrated assembler. Reviewers: rafael Reviewed By: rafael CC: llvm-commits Differential Revision: http://llvm-reviews.chandlerc.com/D2686 llvm-svn: 201237
-
- Feb 09, 2014
-
-
Rafael Espindola authored
These methods normally call each other and it is really annoying if the arguments are in different order. The more common rule was that the arguments specific to call are first (GV, Encoding, Suffix) and the auxiliary objects (Mang, TM) come after. This patch changes the exceptions. llvm-svn: 201044
-
- Feb 08, 2014
-
-
Rafael Espindola authored
It is never null and it is not used in casts, so there is no reason to use a pointer. This matches how we pass TM. llvm-svn: 201025
-
Rafael Espindola authored
llvm-svn: 201022
-
- Feb 07, 2014
-
-
Venkatraman Govindaraju authored
llvm-svn: 200965
-
Venkatraman Govindaraju authored
[Sparc] Emit correct encoding for atomic instructions. Also, add support for parsing CAS instructions to test the CAS encoding. llvm-svn: 200963
-
Venkatraman Govindaraju authored
llvm-svn: 200962
-
Venkatraman Govindaraju authored
llvm-svn: 200961
-
Venkatraman Govindaraju authored
llvm-svn: 200960
-
- Feb 06, 2014
-
-
Rafael Espindola authored
llvm-svn: 200890
-
- Feb 05, 2014
-
-
Rafael Espindola authored
Clang itself was not using this. The only way to access it was via llc. llvm-svn: 200862
-
- Feb 01, 2014
-
-
Venkatraman Govindaraju authored
[Sparc] Set %o7 as the return address register instead of %i7 in MCRegisterInfo. Also, add CFI instructions to initialize the frame correctly. llvm-svn: 200617
-
- Jan 31, 2014
-
-
Venkatraman Govindaraju authored
llvm-svn: 200509
-
- Jan 30, 2014
-
-
Jakob Stoklund Olesen authored
The SWAP instruction only exists in a 32-bit variant, but the 64-bit atomic swap can be implemented in terms of CASX, like the other atomic rmw primitives. llvm-svn: 200453
-
- Jan 29, 2014
-
-
Venkatraman Govindaraju authored
This makes MCAsmInfo::getExprForFDESymbol() a virtual function and overrides it in SparcMCAsmInfo. llvm-svn: 200376
-
Venkatraman Govindaraju authored
Otherwise, assembler (gas) fails to assemble them with error message "operation combines symbols in different segments". This is because MC computes pc_rel entries with subtract expression between labels from different sections. llvm-svn: 200373
-
Venkatraman Govindaraju authored
[SparcV9] Use correct register class (I64RegClass) to hold the address of _GLOBAL_OFFSET_TABLE_ in sparcv9. llvm-svn: 200368
-
David Woodhouse authored
Oops. Don't do build tests on patches like that with --enable-targets=x86_64 llvm-svn: 200355
-