- Jun 20, 2012
-
-
Lang Hames authored
This patch adds DAG combines to form FMAs from pairs of FADD + FMUL or FSUB + FMUL. The combines are performed when: (a) Either AllowExcessFPPrecision option (-enable-excess-fp-precision for llc) OR UnsafeFPMath option (-enable-unsafe-fp-math) are set, and (b) TargetLoweringInfo::isFMAFasterThanMulAndAdd(VT) is true for the type of the FADD/FSUB, and (c) The FMUL only has one user (the FADD/FSUB). If your target has fast FMA instructions you can make use of these combines by overriding TargetLoweringInfo::isFMAFasterThanMulAndAdd(VT) to return true for types supported by your FMA instruction, and adding patterns to match ISD::FMA to your FMA instructions. llvm-svn: 158757
-
- Jun 19, 2012
-
-
Rafael Espindola authored
TargetLoweringObjectFileELF. Use this to support it on X86. Unlike ARM, on X86 it is not easy to find out if .init_array should be used or not, so the decision is made via TargetOptions and defaults to off. Add a command line option to llc that enables it. llvm-svn: 158692
-
- Jun 15, 2012
-
-
Bill Wendling authored
llvm-svn: 158534
-
- Jun 13, 2012
-
-
Rafael Espindola authored
gold to work. Since the enum value LDPO_PIE has just been added to plugin-api.h, use a numeric constant for now so that we don't require an unreleased version of gold to build. llvm-svn: 158402
-
- Jun 11, 2012
-
-
Benjamin Kramer authored
llvm-svn: 158305
-
- Jun 07, 2012
-
-
Michael J. Spencer authored
llvm-svn: 158120
-
- Jun 06, 2012
-
-
Benjamin Kramer authored
LLVM is now -Wunused-private-field clean except for - lib/MC/MCDisassembler/Disassembler.h. Not sure why it keeps all those unaccessible fields. - gtest. llvm-svn: 158096
-
Benjamin Kramer authored
There are some that I didn't remove this round because they looked like obvious stubs. There are dead variables in gtest too, they should be fixed upstream. llvm-svn: 158090
-
- May 30, 2012
-
-
David Blaikie authored
This broke in r144788 when the CodeGenOpt option was moved from everywhere else (specifically, from addPassesToEmitFile) to createTargetMachine. Since LTOCodeGenerator wasn't passing the 4th argument, when the 4th parameter became the 3rd, it silently continued to compile (int->bool conversion) but meant something completely different. This change preserves the existing (accidental) and previous (default) semantics of the addPassesToEmitFile and restores the previous/intended CodeGenOpt argument by passing it appropriately to createTargetMachine. (discovered by pending changes to -Wconversion to catch constant->bool conversions) llvm-svn: 157705
-
rdar://problem/11498613Bob Wilson authored
Besides adding the new insertPass function, this patch uses it to enhance the existing -print-machineinstrs so that the MachineInstrs after a specific pass can be printed. Patch by Bin Zeng! llvm-svn: 157655
-
- May 29, 2012
-
-
Stepan Dyatkovskiy authored
llvm-svn: 157612
-
- May 20, 2012
-
-
Benjamin Kramer authored
Found by valgrind. llvm-svn: 157160
-
- May 19, 2012
-
-
Benjamin Kramer authored
llvm-svn: 157118
-
Stepan Dyatkovskiy authored
llvm-svn: 157112
-
- May 18, 2012
-
-
Jim Grosbach authored
Use a dedicated MachO load command to annotate data-in-code regions. This is the same format the linker produces for final executable images, allowing consistency of representation and use of introspection tools for both object and executable files. Data-in-code regions are annotated via ".data_region"/".end_data_region" directive pairs, with an optional region type. data_region_directive := ".data_region" { region_type } region_type := "jt8" | "jt16" | "jt32" | "jta32" end_data_region_directive := ".end_data_region" The previous handling of ARM-style "$d.*" labels was broken and has been removed. Specifically, it didn't handle ARM vs. Thumb mode when marking the end of the section. rdar://11459456 llvm-svn: 157062
-
Kevin Enderby authored
containing no symbols. Fixed the crash and fixed it not disassembling anything. llvm-svn: 157031
-
- May 16, 2012
-
-
Danil Malyshev authored
Added LLIMCJITMemoryManager to the lli. This manager will be used for MCJIT instead of DefaultJIMMemoryManager. It's more flexible for MCJIT tasks, in addition it's provides a invalidation instruction cache for code sections which will be used before JIT code will be executed. llvm-svn: 156933
-
Chandler Carruth authored
options, to enable easier testing of the innards of LLVM that are enabled by such optimization strategies. Note that this doesn't provide the (much needed) function attribute support for -Oz (as opposed to -Os), but still seems like a positive step to better test the logic that Clang currently relies on. Patch by Patrik Hägglund. llvm-svn: 156913
-
Daniel Dunbar authored
- Hopefully fixes PR11600 (untested). llvm-svn: 156865
-
- May 15, 2012
-
-
Kevin Enderby authored
that has more than one symbol. The last symbol was not being disassembled to the end of the section. llvm-svn: 156840
-
Daniel Dunbar authored
- These libraries are only reported by llvm-config when run from a development tree. llvm-svn: 156838
-
Jim Grosbach authored
Add the MCRegisterInfo to the factories and constructors. Patch by Tom Stellard <Tom.Stellard@amd.com>. llvm-svn: 156828
-
- May 11, 2012
-
-
Rafael Espindola authored
llvm-svn: 156606
-
- May 09, 2012
-
-
rdar://11317847Bob Wilson authored
My previous change to install llvm-config-host for cross-builds resulted in that file being installed even when the normal llvm-config was not installed, e.g., when building the install-clang target. Daniel suggested this alternative, which solves the immediate problem and also avoids the gunk in the top-level makefile. llvm-svn: 156448
-
Kevin Enderby authored
PR12731. Patch by Meador Inge! llvm-svn: 156444
-
- May 04, 2012
-
-
Chandler Carruth authored
and expose it as a utility class rather than as free function wrappers. The simple free-function interface works well for the bugpoint-specific pass's uses of code extraction, but in an upcoming patch for more advanced code extraction, they simply don't expose a rich enough interface. I need to expose various stages of the process of doing the code extraction and query information to decide whether or not to actually complete the extraction or give up. Rather than build up a new predicate model and pass that into these functions, just take the class that was actually implementing the functions and lift it up into a proper interface that can be used to perform code extraction. The interface is cleaned up and re-documented to work better in a header. It also is now setup to accept the blocks to be extracted in the constructor rather than in a method. In passing this essentially reverts my previous commit here exposing a block-level query for eligibility of extraction. That is no longer necessary with the more rich interface as clients can query the extraction object for eligibility directly. This will reduce the number of walks of the input basic block sequence by quite a bit which is useful if this enters the normal optimization pipeline. llvm-svn: 156163
-
Pete Cooper authored
Patch by Meador Inge. llvm-svn: 156128
-
- May 02, 2012
-
-
John McCall authored
llvm-svn: 155978
-
- Apr 29, 2012
-
-
Eli Bendersky authored
if !ForceInterpreteri). It has no effect (apart from a memory leak...) llvm-svn: 155792
-
- Apr 27, 2012
-
-
- Apr 26, 2012
-
-
Michael J. Spencer authored
While making lld build under the tools directory I decided to refactor how this works. There is now a macro, add_llvm_external_project, which takes the name of the expected subdirectory. This sets up two CMake options. * LLVM_EXTERNAL_${NAME}_SOURCE_DIR This is the path to the source. It defaults to ${CMAKE_CURRENT_SOURCE_DIR}/${name}. * LLVM_EXTERNAL_${NAME}_BUILD Enable and disable building the tool as part of LLVM. I chose LLVM_EXTERNAL_${NAME} as a prefix so they all show up together in the GUI. llvm-svn: 155654
-
- Apr 25, 2012
-
-
Chris Lattner authored
llvm-svn: 155536
-
- Apr 19, 2012
-
-
Michael J. Spencer authored
llvm-ld is no longer useful and causes confusion and so it is being removed. * Does not work very well on Windows because it must call a gcc like driver to assemble and link. * Has lots of hard coded paths which are wrong on many systems. * Does not understand most of ld's options. * Can be partially replaced by llvm-link | opt | {llc | as, llc -filetype=obj} | ld, or fully replaced by Clang. I know of no production use of llvm-ld, and hacking use should be replaced by Clang's driver. llvm-svn: 155147
-
- Apr 18, 2012
-
-
Nick Lewycky authored
backend flags in TargetOptions.h into their own class in r145714. llvm-svn: 154993
-
Joe Groff authored
llvm-svn: 154959
-
- Apr 16, 2012
-
-
Richard Barton authored
Add -disassemble support for -show-inst and -show-encode capability llvm-mc. Also refactor so all MC paraphernalia are created once for all uses as much as possible. The test change is to account for the fact that the default disassembler behaviour has changed with regards to specifying the assembly syntax to use. llvm-svn: 154809
-
Rafael Espindola authored
so we don't want it to show up in the stable 3.1 interface. While at it, add a comment about why LTOCodeGenerator manually creates the internalize pass. llvm-svn: 154807
-
Craig Topper authored
Make member variables of AsmToken private. Remove unnecessary forward declarations. Remove an unnecessary include. llvm-svn: 154775
-
- Apr 15, 2012
-
-
Nadav Rotem authored
Patch by nobled <nobled@dreamwidth.org> llvm-svn: 154772
-
- Apr 11, 2012
-
-
Sylvestre Ledru authored
Thanks to Pino Toscano for the patch llvm-svn: 154500
-