de2d8694e25a814696358e95141f4b1aa4d8847e |
|
20-Sep-2016 |
Pirama Arumuga Nainar <pirama@google.com> |
Update aosp/master LLVM for rebase to r275480 Bug: http://b/31320715 This merges commit 7dcf7f03e005379ef2f06db96aa93f06186b66d5 from aosp/dev. Test: Build AOSP and run RenderScript tests (host tests for slang and libbcc, RsTest, CTS) Change-Id: Iaf3738f74312d875e69f61d604ac058f381a2a1a
/external/llvm/lib/CodeGen/LLVMTargetMachine.cpp
|
f3ef5332fa3f4d5ec72c178a2b19dac363a19383 |
|
04-Mar-2016 |
Pirama Arumuga Nainar <pirama@google.com> |
Update aosp/master LLVM for rebase to r256229 http://b/26987366 Change-Id: I1f29c4676a8abe633ab5707dded58d846c973d50
/external/llvm/lib/CodeGen/LLVMTargetMachine.cpp
|
6948897e478cbd66626159776a8017b3c18579b9 |
|
01-Jul-2015 |
Pirama Arumuga Nainar <pirama@google.com> |
Update aosp/master LLVM for rebase to r239765 Bug: 20140355: This rebase pulls the upstream fix for the spurious warnings mentioned in the bug. Change-Id: I7fd24253c50f4d48d900875dcf43ce3f1721a3da
/external/llvm/lib/CodeGen/LLVMTargetMachine.cpp
|
0c7f116bb6950ef819323d855415b2f2b0aad987 |
|
06-May-2015 |
Pirama Arumuga Nainar <pirama@google.com> |
Update aosp/master LLVM for rebase to r235153 Change-Id: I9bf53792f9fc30570e81a8d80d296c681d005ea7
/external/llvm/lib/CodeGen/LLVMTargetMachine.cpp
|
4c5e43da7792f75567b693105cc53e3f1992ad98 |
|
08-Apr-2015 |
Pirama Arumuga Nainar <pirama@google.com> |
Update aosp/master llvm for rebase to r233350 Change-Id: I07d935f8793ee8ec6b7da003f6483046594bca49
/external/llvm/lib/CodeGen/LLVMTargetMachine.cpp
|
ebe69fe11e48d322045d5949c83283927a0d790b |
|
23-Mar-2015 |
Stephen Hines <srhines@google.com> |
Update aosp/master LLVM for rebase to r230699. Change-Id: I2b5be30509658cb8266be782de0ab24f9099f9b9
/external/llvm/lib/CodeGen/LLVMTargetMachine.cpp
|
37ed9c199ca639565f6ce88105f9e39e898d82d0 |
|
01-Dec-2014 |
Stephen Hines <srhines@google.com> |
Update aosp/master LLVM for rebase to r222494. Change-Id: Ic787f5e0124df789bd26f3f24680f45e678eef2d
/external/llvm/lib/CodeGen/LLVMTargetMachine.cpp
|
c6a4f5e819217e1e12c458aed8e7b122e23a3a58 |
|
21-Jul-2014 |
Stephen Hines <srhines@google.com> |
Update LLVM for rebase to r212749. Includes a cherry-pick of: r212948 - fixes a small issue with atomic calls Change-Id: Ib97bd980b59f18142a69506400911a6009d9df18
/external/llvm/lib/CodeGen/LLVMTargetMachine.cpp
|
dce4a407a24b04eebc6a376f8e62b41aaa7b071f |
|
29-May-2014 |
Stephen Hines <srhines@google.com> |
Update LLVM for 3.5 rebase (r209712). Change-Id: I149556c940fb7dc92d075273c87ff584f400941f
/external/llvm/lib/CodeGen/LLVMTargetMachine.cpp
|
36b56886974eae4f9c5ebc96befd3e7bfe5de338 |
|
24-Apr-2014 |
Stephen Hines <srhines@google.com> |
Update to LLVM 3.5a. Change-Id: Ifadecab779f128e62e430c2b4f6ddd84953ed617
/external/llvm/lib/CodeGen/LLVMTargetMachine.cpp
|
2565de926b64b0777c2a192b53ac1ab43fc42a70 |
|
08-Oct-2013 |
Eric Christopher <echristo@gmail.com> |
Grammar. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@192199 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LLVMTargetMachine.cpp
|
da11df0c22f5d0ba2e2be3ae4a7076c806233db8 |
|
09-Sep-2013 |
Bill Wendling <isanbard@gmail.com> |
Call generateCompactUnwindEncodings() right before we need to output the frame information. There are more than one paths to where the frame information is emitted. Place the call to generateCompactUnwindEncodings() into the method which outputs the frame information, thus ensuring that the encoding is there for every path. This involved threading the MCAsmBackend object through to this method. <rdar://problem/13623355> git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@190335 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LLVMTargetMachine.cpp
|
c3cee57f7d20f69a84fd88464ed8cf050e63c7ad |
|
09-Sep-2013 |
Bill Wendling <isanbard@gmail.com> |
Generate compact unwind encoding from CFI directives. We used to generate the compact unwind encoding from the machine instructions. However, this had the problem that if the user used `-save-temps' or compiled their hand-written `.s' file (with CFI directives), we wouldn't generate the compact unwind encoding. Move the algorithm that generates the compact unwind encoding into the MCAsmBackend. This way we can generate the encoding whether the code is from a `.ll' or `.s' file. <rdar://problem/13623355> git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@190290 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LLVMTargetMachine.cpp
|
ea44281d5da5096de50ce1cb358ff0c6f20e1a2a |
|
19-Jun-2013 |
Bill Wendling <isanbard@gmail.com> |
Access the TargetLoweringInfo from the TargetMachine object instead of caching it. The TLI may change between functions. No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184349 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LLVMTargetMachine.cpp
|
4ca0ddaefa2bdea4803cd768e543904f575acdb6 |
|
18-Jun-2013 |
Bill Wendling <isanbard@gmail.com> |
Simplify some of the code. No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184172 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LLVMTargetMachine.cpp
|
08368387a450dc2b5681000e2728ec702a8f1197 |
|
06-Jun-2013 |
Bill Wendling <isanbard@gmail.com> |
Add space to assert message. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@183346 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LLVMTargetMachine.cpp
|
4a971705bc6030dc2e4338b3cd5cffa2e0f88b7b |
|
13-May-2013 |
Rafael Espindola <rafael.espindola@gmail.com> |
Remove the MachineMove class. It was just a less powerful and more confusing version of MCCFIInstruction. A side effect is that, since MCCFIInstruction uses dwarf register numbers, calls to getDwarfRegNum are pushed out, which should allow further simplifications. I left the MachineModuleInfo::addFrameMove interface unchanged since this patch was already fairly big. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@181680 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LLVMTargetMachine.cpp
|
063337309e71683fc57c049c10d03d4f8a2ce356 |
|
19-Feb-2013 |
Benjamin Kramer <benny.kra@googlemail.com> |
Fix GCMetadaPrinter::finishAssembly not executed, patch by Yiannis Tsiouris. Due to the execution order of doFinalization functions, the GC information were deleted before AsmPrinter::doFinalization was executed. Thus, the GCMetadataPrinter::finishAssembly was never called. The patch fixes that by moving the code of the GCInfoDeleter::doFinalization to Printer::doFinalization. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175528 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LLVMTargetMachine.cpp
|
aeef83c6afa1e18d1cf9d359cc678ca0ad556175 |
|
07-Jan-2013 |
Chandler Carruth <chandlerc@gmail.com> |
Switch TargetTransformInfo from an immutable analysis pass that requires a TargetMachine to construct (and thus isn't always available), to an analysis group that supports layered implementations much like AliasAnalysis does. This is a pretty massive change, with a few parts that I was unable to easily separate (sorry), so I'll walk through it. The first step of this conversion was to make TargetTransformInfo an analysis group, and to sink the nonce implementations in ScalarTargetTransformInfo and VectorTargetTranformInfo into a NoTargetTransformInfo pass. This allows other passes to add a hard requirement on TTI, and assume they will always get at least on implementation. The TargetTransformInfo analysis group leverages the delegation chaining trick that AliasAnalysis uses, where the base class for the analysis group delegates to the previous analysis *pass*, allowing all but tho NoFoo analysis passes to only implement the parts of the interfaces they support. It also introduces a new trick where each pass in the group retains a pointer to the top-most pass that has been initialized. This allows passes to implement one API in terms of another API and benefit when some other pass above them in the stack has more precise results for the second API. The second step of this conversion is to create a pass that implements the TargetTransformInfo analysis using the target-independent abstractions in the code generator. This replaces the ScalarTargetTransformImpl and VectorTargetTransformImpl classes in lib/Target with a single pass in lib/CodeGen called BasicTargetTransformInfo. This class actually provides most of the TTI functionality, basing it upon the TargetLowering abstraction and other information in the target independent code generator. The third step of the conversion adds support to all TargetMachines to register custom analysis passes. This allows building those passes with access to TargetLowering or other target-specific classes, and it also allows each target to customize the set of analysis passes desired in the pass manager. The baseline LLVMTargetMachine implements this interface to add the BasicTTI pass to the pass manager, and all of the tools that want to support target-aware TTI passes call this routine on whatever target machine they end up with to add the appropriate passes. The fourth step of the conversion created target-specific TTI analysis passes for the X86 and ARM backends. These passes contain the custom logic that was previously in their extensions of the ScalarTargetTransformInfo and VectorTargetTransformInfo interfaces. I separated them into their own file, as now all of the interface bits are private and they just expose a function to create the pass itself. Then I extended these target machines to set up a custom set of analysis passes, first adding BasicTTI as a fallback, and then adding their customized TTI implementations. The fourth step required logic that was shared between the target independent layer and the specific targets to move to a different interface, as they no longer derive from each other. As a consequence, a helper functions were added to TargetLowering representing the common logic needed both in the target implementation and the codegen implementation of the TTI pass. While technically this is the only change that could have been committed separately, it would have been a nightmare to extract. The final step of the conversion was just to delete all the old boilerplate. This got rid of the ScalarTargetTransformInfo and VectorTargetTransformInfo classes, all of the support in all of the targets for producing instances of them, and all of the support in the tools for manually constructing a pass based around them. Now that TTI is a relatively normal analysis group, two things become straightforward. First, we can sink it into lib/Analysis which is a more natural layer for it to live. Second, clients of this interface can depend on it *always* being available which will simplify their code and behavior. These (and other) simplifications will follow in subsequent commits, this one is clearly big enough. Finally, I'm very aware that much of the comments and documentation needs to be updated. As soon as I had this working, and plausibly well commented, I wanted to get it committed and in front of the build bots. I'll be doing a few passes over documentation later if it sticks. Commits to update DragonEgg and Clang will be made presently. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@171681 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LLVMTargetMachine.cpp
|
07f6a4fde0a1b081fbefd986345c9b2f4f85e88a |
|
10-Dec-2012 |
Lang Hames <lhames@gmail.com> |
Defer call to InitSections until after MCContext has been initialized. If InitSections is called before the MCContext is initialized it could cause duplicate temporary symbols to be emitted later (after context initialization resets the temporary label counter). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@169785 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LLVMTargetMachine.cpp
|
d04a8d4b33ff316ca4cf961e06c9e312eff8e64f |
|
03-Dec-2012 |
Chandler Carruth <chandlerc@gmail.com> |
Use the new script to sort the includes of every file under lib. Sooooo many of these had incorrect or strange main module includes. I have manually inspected all of these, and fixed the main module include to be the nearest plausible thing I could find. If you own or care about any of these source files, I encourage you to take some time and check that these edits were sensible. I can't have broken anything (I strictly added headers, and reordered them, never removed), but they may not be the headers you'd really like to identify as containing the API being implemented. Many forward declarations and missing includes were added to a header files to allow them to parse cleanly when included first. The main module rule does in fact have its merits. =] git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@169131 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LLVMTargetMachine.cpp
|
08510b14d4fe5d9b1a979fbee8a7aad11dbc6cea |
|
30-Nov-2012 |
Bill Wendling <isanbard@gmail.com> |
Replace r168930 with a more reasonable patch. The original patch removed a bunch of code that the SjLjEHPrepare pass placed into the entry block if all of the landing pads were removed during the CodeGenPrepare class. The more natural way of doing things is to run the CGP *before* we run the SjLjEHPrepare pass. Make it so! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@169044 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LLVMTargetMachine.cpp
|
9f696c815719ceabbba8443e8039827ebcdebe44 |
|
22-Nov-2012 |
Eli Bendersky <eliben@google.com> |
Fix 80-col violation git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@168498 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LLVMTargetMachine.cpp
|
536a88ad5bf160232205192a7ce72e50bfadbded |
|
18-Sep-2012 |
Roman Divacky <rdivacky@freebsd.org> |
When creating MCAsmBackend pass the CPU string as well. In X86AsmBackend store this and use it to not emit long nops when the CPU is geode which doesnt support them. Fixes PR11212. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@164132 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LLVMTargetMachine.cpp
|
30a507a1f5d6a5646dd3481eba6958424415c886 |
|
02-Jul-2012 |
Bob Wilson <bob.wilson@apple.com> |
Extend TargetPassConfig to allow running only a subset of the normal passes. This is still a work in progress but I believe it is currently good enough to fix PR13122 "Need unit test driver for codegen IR passes". For example, you can run llc with -stop-after=loop-reduce to have it dump out the IR after running LSR. Serializing machine-level IR is not yet supported but we have some patches in progress for that. The plan is to serialize the IR to a YAML file, containing separate sections for the LLVM IR, machine-level IR, and whatever other info is needed. Chad suggested that we stash the stop-after pass in the YAML file and use that instead of the start-after option to figure out where to restart the compilation. I think that's a great idea, but since it's not implemented yet I put the -start-after option into this patch for testing purposes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@159570 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LLVMTargetMachine.cpp
|
564fbf6aff8fb95646a1290078a37c2d4dbe629f |
|
02-Jul-2012 |
Bob Wilson <bob.wilson@apple.com> |
Add all codegen passes to the PassManager via TargetPassConfig. This is a preliminary step toward having TargetPassConfig be able to start and stop the compilation at specified passes for unit testing and debugging. No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@159567 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LLVMTargetMachine.cpp
|
6514551be704adb577682148ca825c08fd642329 |
|
20-May-2012 |
Benjamin Kramer <benny.kra@googlemail.com> |
Plug a leak when using MCJIT. Found by valgrind. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@157160 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LLVMTargetMachine.cpp
|
79485315cd88df1d743158feeb21cc46c253c021 |
|
20-May-2012 |
Benjamin Kramer <benny.kra@googlemail.com> |
Use TargetMachine's register info instead of creating a new one and leaking it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@157155 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LLVMTargetMachine.cpp
|
918f55fe239f00651e396be841f2b3b6e242f98d |
|
15-May-2012 |
Jim Grosbach <grosbach@apple.com> |
Allow MCCodeEmitter access to the target MCRegisterInfo. Add the MCRegisterInfo to the factories and constructors. Patch by Tom Stellard <Tom.Stellard@amd.com>. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@156828 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LLVMTargetMachine.cpp
|
17463b3ef1a3d39b10619254f12e806c8c43f9e7 |
|
02-Apr-2012 |
Craig Topper <craig.topper@gmail.com> |
Make MCInstrInfo available to the MCInstPrinter. This will be used to remove getInstructionName and the static data it contains since the same tables are already in MCInstrInfo. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@153860 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LLVMTargetMachine.cpp
|
eabae1d07bffac60d9f4f2473cf6736d6a1c372d |
|
13-Mar-2012 |
Bill Wendling <isanbard@gmail.com> |
s/SjLjEHPass/SjLjEHPrepare/ No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@152658 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LLVMTargetMachine.cpp
|
c6449b636f4984be88f128d0375c056ad05e7e8f |
|
05-Mar-2012 |
Jim Grosbach <grosbach@apple.com> |
Make MCRegisterInfo available to the the MCInstPrinter. Used to allow context sensitive printing of super-register or sub-register references. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@152043 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LLVMTargetMachine.cpp
|
7842a741eb0e1baa35af8c3bb5884655c1edaa9e |
|
17-Feb-2012 |
Jim Grosbach <grosbach@apple.com> |
Tidy up. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150820 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LLVMTargetMachine.cpp
|
ffea03f2165c5a4fda672495bf853aa2d8c7d1b5 |
|
08-Feb-2012 |
Andrew Trick <atrick@apple.com> |
Added TargetPassConfig::setOpt git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150093 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LLVMTargetMachine.cpp
|
6939fde29cdd04cec9f440a9351c1c4340850e20 |
|
06-Feb-2012 |
Andrew Trick <atrick@apple.com> |
Add TargetPassConfig to the PassManager for use inside passes git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@149926 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LLVMTargetMachine.cpp
|
c0dc1b7f9725433325ea06e1272ba7fd411c2eb1 |
|
04-Feb-2012 |
Nick Lewycky <nicholas@mxc.ca> |
Fix a leak! Andy, in a previous commit you made this into an ImmutablePass so that you could add it to the PassManager, then in the next commit you left it a Pass but removed the code that added it to the PM. If you do add it to the PM then the PM should take care of deleting it, but it's also true that nothing in codegen needs this object to exist after it's done its work here. It's not clear to me which design you want; this should likely either cease to be a Pass or be added to the PM where other parts of CodeGen will request it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@149765 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LLVMTargetMachine.cpp
|
061efcfb3e79899493d857f49e50d09f29037e0a |
|
04-Feb-2012 |
Andrew Trick <atrick@apple.com> |
TargetPassConfig: confine the MC configuration to TargetMachine. Passes prior to instructon selection are now split into separate configurable stages. Header dependencies are simplified. The bulk of this diff is simply removal of the silly DisableVerify flags. Sorry for the target header churn. Attempting to stabilize them. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@149754 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LLVMTargetMachine.cpp
|
d5422654016b3ac7494db1d2ba16bd8febadb0a8 |
|
04-Feb-2012 |
Andrew Trick <atrick@apple.com> |
Move TargetPassConfig implementation into Passes.cpp git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@149753 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LLVMTargetMachine.cpp
|
7461334084aa77286b6f9af596fb0f6ba0465685 |
|
04-Feb-2012 |
Andrew Trick <atrick@apple.com> |
Make TargetPassConfig an ImmutablePass so CodeGenPasses can query options git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@149752 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LLVMTargetMachine.cpp
|
f1f78d5266dd67e25f23904578d69384bb53a6f7 |
|
03-Feb-2012 |
Andrew Trick <atrick@apple.com> |
Initialize all common codegen passes before configuration so we can use their PassIDs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@149705 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LLVMTargetMachine.cpp
|
843ee2e6a46b2b2d74a84c2eea68dec35cb359cc |
|
03-Feb-2012 |
Andrew Trick <atrick@apple.com> |
Added TargetPassConfig. The first little step toward configuring codegen passes. Allows command line overrides to be centralized in LLVMTargetMachine.cpp. LLVMTargetMachine can intercept common passes and give precedence to command line overrides. Allows adding "internal" target configuration options without touching TargetOptions. Encapsulates the PassManager. Provides a good point to initialize all CodeGen passes so that Pass ID's can be used in APIs. Allows modifying the target configuration hooks without rebuilding the world. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@149672 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LLVMTargetMachine.cpp
|
4a309f3d25f3a28065a8ccbd7067afaad745e2d1 |
|
22-Jan-2012 |
Anton Korobeynikov <asl@math.spbu.ru> |
Add an option to disable buggy copy propagation pass git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@148662 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LLVMTargetMachine.cpp
|
07680ec7a1ea86e8280c924e84e0eb2455e2483c |
|
13-Jan-2012 |
Andrew Trick <atrick@apple.com> |
80-col violation git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@148102 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LLVMTargetMachine.cpp
|
732f05c41f177a0bc4d47e93a5d02120f146cb4c |
|
10-Jan-2012 |
Chandler Carruth <chandlerc@gmail.com> |
Add 'llvm_unreachable' to passify GCC's understanding of the constraints of several newly un-defaulted switches. This also helps optimizers (including LLVM's) recognize that every case is covered, and we should assume as much. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@147861 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LLVMTargetMachine.cpp
|
2bd335470f8939782f3df7f6180282d3825d4f09 |
|
10-Jan-2012 |
David Blaikie <dblaikie@gmail.com> |
Remove unnecessary default cases in switches that cover all enum values. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@147855 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LLVMTargetMachine.cpp
|
9cce24a257108ec50f65652d233b9ffadc691682 |
|
10-Jan-2012 |
Rafael Espindola <rafael.espindola@gmail.com> |
Remove the logging streamer. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@147820 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LLVMTargetMachine.cpp
|
977679d6034791fd48a344e5b990503ba50fc242 |
|
07-Jan-2012 |
Evan Cheng <evan.cheng@apple.com> |
Added a late machine instruction copy propagation pass. This catches opportunities that only present themselves after late optimizations such as tail duplication .e.g. ## BB#1: movl %eax, %ecx movl %ecx, %eax ret The register allocator also leaves some of them around (due to false dep between copies from phi-elimination, etc.) This required some changes in codegen passes. Post-ra scheduler and the pseudo-instruction expansion passes have been moved after branch folding and tail merging. They were before branch folding before because it did not always update block livein's. That's fixed now. The pass change makes independently since we want to properly schedule instructions after branch folding / tail duplication. rdar://10428165 rdar://10640363 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@147716 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LLVMTargetMachine.cpp
|
8a8d479214745c82ef00f08d4e4f1c173b5f9ce2 |
|
02-Dec-2011 |
Nick Lewycky <nicholas@mxc.ca> |
Move global variables in TargetMachine into new TargetOptions class. As an API change, now you need a TargetOptions object to create a TargetMachine. Clang patch to follow. One small functionality change in PTX. PTX had commented out the machine verifier parts in their copy of printAndVerify. That now calls the version in LLVMTargetMachine. Users of PTX who need verification disabled should rely on not passing the command-line flag to enable it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145714 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LLVMTargetMachine.cpp
|
b95fc31aa2e5a0a0b9ee1909d1cb949577c5aa16 |
|
16-Nov-2011 |
Evan Cheng <evan.cheng@apple.com> |
Sink codegen optimization level into MCCodeGenInfo along side relocation model and code model. This eliminates the need to pass OptLevel flag all over the place and makes it possible for any codegen pass to use this information. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144788 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LLVMTargetMachine.cpp
|
37efc9fe42a4867c81526cac7fca9fe0ea04a484 |
|
02-Nov-2011 |
Chandler Carruth <chandlerc@gmail.com> |
Begin collecting some of the statistics for block placement discussed on the mailing list. Suggestions for other statistics to collect would be awesome. =] Currently these are implemented as a separate pass guarded by a separate flag. I'm not thrilled by that, but I wanted to be able to collect the statistics for the old code placement as well as the new in order to have a point of comparison. I'm planning on folding them into the single pass if / when there is only one pass of interest. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@143537 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LLVMTargetMachine.cpp
|
ca30f75703fa4f032b256bba445608c79e2bd82c |
|
25-Oct-2011 |
Jim Grosbach <grosbach@apple.com> |
Make assert() message more informative. PR11217. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@142956 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LLVMTargetMachine.cpp
|
db35087d21f09fdde81cab7e12fc0bcd8b7d00e9 |
|
21-Oct-2011 |
Chandler Carruth <chandlerc@gmail.com> |
Implement a block placement pass based on the branch probability and block frequency analyses. This differs substantially from the existing block-placement pass in LLVM: 1) It operates on the Machine-IR in the CodeGen layer. This exposes much more (and more precise) information and opportunities. Also, the results are more stable due to fewer transforms ocurring after the pass runs. 2) It uses the generalized probability and frequency analyses. These can model static heuristics, code annotation derived heuristics as well as eventual profile loading. By basing the optimization on the analysis interface it can work from any (or a combination) of these inputs. 3) It uses a more aggressive algorithm, both building chains from tho bottom up to maximize benefit, and using an SCC-based walk to layout chains of blocks in a profitable ordering without O(N^2) iterations which the old pass involves. The pass is currently gated behind a flag, and not enabled by default because it still needs to grow some important features. Most notably, it needs to support loop aligning and careful layout of loop structures much as done by hand currently in CodePlacementOpt. Once it supports these, and has sufficient testing and quality tuning, it should replace both of these passes. Thanks to Nick Lewycky and Richard Smith for help authoring & debugging this, and to Jakob, Andy, Eric, Jim, and probably a few others I'm forgetting for reviewing and answering all my questions. Writing a backend pass is *sooo* much better now than it used to be. =D git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@142641 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LLVMTargetMachine.cpp
|
44d798d9763bc32aaf49fe7c10d604845f4b6685 |
|
18-Oct-2011 |
Nick Lewycky <nicholas@mxc.ca> |
Add support for a new extension to the .file directive: .file filenumber "directory" "filename" This removes one join+split of the directory+filename in MC internals. Because bitcode files have independent fields for directory and filenames in debug info, this patch may change the .o files written by existing .bc files. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@142300 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LLVMTargetMachine.cpp
|
d398bae0e008f089037e7c3c316e2b6b194daefc |
|
30-Sep-2011 |
Torok Edwin <edwintorok@gmail.com> |
Comment grammar fixes. thanks to Duncan. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@140850 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LLVMTargetMachine.cpp
|
10a11ecb59b8b9d5de462930960df0d4bd4bf801 |
|
30-Sep-2011 |
Torok Edwin <edwintorok@gmail.com> |
Instead of crashing when MCAsmInfo is NULL, add an assert. This helps with porting code from 2.9 to 3.0 as TargetSelect.h changed location, and if you include the old one by accident you will trigger this assert. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@140848 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LLVMTargetMachine.cpp
|
4b6736bdb02e21e4611522d033247f015aa6c4aa |
|
28-Sep-2011 |
Bill Wendling <isanbard@gmail.com> |
Don't conditionalize execution of the SjLj EH prepare pass. We may need an SjLj EH preparation pass for some call site information, at least in the short term. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@140674 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LLVMTargetMachine.cpp
|
0481d29d49cc26a944d0d502360f044cb493a4b5 |
|
28-Sep-2011 |
Bill Wendling <isanbard@gmail.com> |
This is the start of the new SjLj EH preparation pass, which will replace the current IR-level pass. The old SjLj EH pass has some problems, especially with the new EH model. Most significantly, it violates some of the new restrictions the new model has. For instance, the 'dispatch' table wants to jump to the landing pad, but we cannot allow that because only an invoke's unwind edge can jump to a landing pad. This requires us to mangle the code something awful. In addition, we need to keep the now dead landingpad instructions around instead of CSE'ing them because the DWARF emitter uses that information (they are dead because no control flow edge will execute them - the control flow edge from an invoke's unwind is superceded by the edge coming from the dispatch). Basically, this pass belongs not at the IR level where SSA is king, but at the code-gen level, where we have more flexibility. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@140646 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LLVMTargetMachine.cpp
|
74e2d6ea66a9289fc3c00583f3c2b2abd84e1866 |
|
25-Sep-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Clean up code after renaming LowerSubregs -> ExpandPostRAPseudos. No functional change intended. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@140470 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LLVMTargetMachine.cpp
|
b950585cc5a0d665e9accfe5ce490cd269756f2e |
|
07-Sep-2011 |
James Molloy <james.molloy@arm.com> |
Refactor instprinter and mcdisassembler to take a SubtargetInfo. Add -mattr= handling to llvm-mc. Reviewed by Owen Anderson. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@139237 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LLVMTargetMachine.cpp
|
3e74d6fdd248e20a280f1dff3da9a6c689c2c4c3 |
|
24-Aug-2011 |
Evan Cheng <evan.cheng@apple.com> |
Move TargetRegistry and TargetSelect from Target to Support where they belong. These are strictly utilities for registering targets and components. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@138450 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LLVMTargetMachine.cpp
|
61b2d7f20780409143f312bcfa29149d237f99d8 |
|
19-Aug-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Add llc flags to disable machine DCE and CSE. This is useful for unit tests. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@138028 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LLVMTargetMachine.cpp
|
28c85a81a17dd719a254dc00cbeb484774893197 |
|
26-Jul-2011 |
Evan Cheng <evan.cheng@apple.com> |
Rename createCodeEmitter to createMCCodeEmitter; createObjectStreamer to createMCObjectStreamer. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@136031 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LLVMTargetMachine.cpp
|
78c10eeaa57d1c6c4b7781d3c0bcb0cfbbc43b5c |
|
26-Jul-2011 |
Evan Cheng <evan.cheng@apple.com> |
Rename TargetAsmBackend to MCAsmBackend; rename createAsmBackend to createMCAsmBackend. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@136010 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LLVMTargetMachine.cpp
|
203576aa0cb9d8bf2d2e4d910ebab4b7a63262ae |
|
20-Jul-2011 |
Evan Cheng <evan.cheng@apple.com> |
Goodbye TargetAsmInfo. This eliminate last bit of CodeGen and Target in llvm-mc. There is still a bit more refactoring left to do in Targets. But we are now very close to fixing all the layering issues in MC. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135611 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LLVMTargetMachine.cpp
|
34ad6db8b958fdc0d38e122edf753b5326e69b03 |
|
20-Jul-2011 |
Evan Cheng <evan.cheng@apple.com> |
- Move CodeModel from a TargetMachine global option to MCCodeGenInfo. - Introduce JITDefault code model. This tells targets to set different default code model for JIT. This eliminates the ugly hack in TargetMachine where code model is changed after construction. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135580 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LLVMTargetMachine.cpp
|
e76a33b9567d78a5744dc52fcec3a6056d6fb576 |
|
20-Jul-2011 |
Evan Cheng <evan.cheng@apple.com> |
Add MCObjectFileInfo and sink the MCSections initialization code from TargetLoweringObjectFileImpl down to MCObjectFileInfo. TargetAsmInfo is done to one last method. It's *almost* gone! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135569 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LLVMTargetMachine.cpp
|
439661395fd2a2a832dba01c65bc88718528313c |
|
19-Jul-2011 |
Evan Cheng <evan.cheng@apple.com> |
Introduce MCCodeGenInfo, which keeps information that can affect codegen (including compilation, assembly). Move relocation model Reloc::Model from TargetMachine to MCCodeGenInfo so it's accessible even without TargetMachine. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135468 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LLVMTargetMachine.cpp
|
0e6a052331f674dd70e28af41f654a7874405eab |
|
18-Jul-2011 |
Evan Cheng <evan.cheng@apple.com> |
Sink getDwarfRegNum, getLLVMRegNum, getSEHRegNum from TargetRegisterInfo down to MCRegisterInfo. Also initialize the mapping at construction time. This patch eliminate TargetRegisterInfo from TargetAsmInfo. It's another step towards fixing the layering violation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135424 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LLVMTargetMachine.cpp
|
1abf2cb59b8d63415780a03329307c0997b2670c |
|
15-Jul-2011 |
Evan Cheng <evan.cheng@apple.com> |
Rename createAsmInfo to createMCAsmInfo and move registration code to MCTargetDesc to prepare for next round of changes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135219 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LLVMTargetMachine.cpp
|
59ee62d2418df8db499eca1ae17f5900dc2dcbba |
|
11-Jul-2011 |
Evan Cheng <evan.cheng@apple.com> |
- Eliminate MCCodeEmitter's dependency on TargetMachine. It now uses MCInstrInfo and MCSubtargetInfo. - Added methods to update subtarget features (used when targets automatically detect subtarget features or switch modes). - Teach X86Subtarget to update MCSubtargetInfo features bits since the MCSubtargetInfo layer can be shared with other modules. - These fixes .code 16 / .code 32 support since mode switch is updated in MCSubtargetInfo so MC code emitter can do the right thing. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@134884 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LLVMTargetMachine.cpp
|
ebdeeab812beec0385b445f3d4c41a114e0d972f |
|
08-Jul-2011 |
Evan Cheng <evan.cheng@apple.com> |
Eliminate asm parser's dependency on TargetMachine: - Each target asm parser now creates its own MCSubtatgetInfo (if needed). - Changed AssemblerPredicate to take subtarget features which tablegen uses to generate asm matcher subtarget feature queries. e.g. "ModeThumb,FeatureThumb2" is translated to "(Bits & ModeThumb) != 0 && (Bits & FeatureThumb2) != 0". git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@134678 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LLVMTargetMachine.cpp
|
b262799d49891b036daa00eddf51947487346c98 |
|
06-Jul-2011 |
Evan Cheng <evan.cheng@apple.com> |
createMCInstPrinter doesn't need TargetMachine anymore. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@134525 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LLVMTargetMachine.cpp
|
9c04b5bd282bd5d03ab2114339d670ca95073664 |
|
06-Jul-2011 |
Dan Gohman <gohman@apple.com> |
Remove the ObjC ARC passes from the default optimization list, and add extension points to be used by clang. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@134444 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LLVMTargetMachine.cpp
|
25483911049304c069b76f0a3b2f4f6b2216ef51 |
|
04-Jul-2011 |
Rafael Espindola <rafael.espindola@gmail.com> |
Move early tail duplication earlier. This fixes the issue noted in PR10251 where early tail dup of bbs with indirectbr would cause a bb to be duplicated into a loop preheader and then into its predecessors, creating phi nodes with identical operands just before register allocation. This helps with jsinterp.o size (__TEXT goes from 163568 to 126656) and a bit with performance 1.005x faster on sunspider (jits still enabled). The result on webkit with the jit disabled is more significant: 1.021x faster. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@134372 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LLVMTargetMachine.cpp
|
e266ce6c6eaf52ebe2b18d85b5e23788cf2f6ef4 |
|
17-Jun-2011 |
Bill Wendling <isanbard@gmail.com> |
Use the verbose asm flag instead of a new flag for decoding the LSDA. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133292 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LLVMTargetMachine.cpp
|
916a94b870042772568fca7995cf45aef7a6e333 |
|
17-Jun-2011 |
Bill Wendling <isanbard@gmail.com> |
Add an option that allows one to "decode" the LSDA. The LSDA is a bit difficult for the non-initiated to read. Even with comments, it's not always clear what's going on. This wraps the ASM streamer in a class that retains the LSDA and then emits a human-readable description of what's going on in it. So instead of having to make sense of: Lexception1: .byte 255 .byte 155 .byte 168 .space 1 .byte 3 .byte 26 Lset0 = Ltmp7-Leh_func_begin1 .long Lset0 Lset1 = Ltmp812-Ltmp7 .long Lset1 Lset2 = Ltmp913-Leh_func_begin1 .long Lset2 .byte 3 Lset3 = Ltmp812-Leh_func_begin1 .long Lset3 Lset4 = Leh_func_end1-Ltmp812 .long Lset4 .long 0 .byte 0 .byte 1 .byte 0 .byte 2 .byte 125 .long __ZTIi@GOTPCREL+4 .long __ZTIPKc@GOTPCREL+4 you can read this instead: ## Exception Handling Table: Lexception1 ## @LPStart Encoding: omit ## @TType Encoding: indirect pcrel sdata4 ## @TType Base: 40 bytes ## @CallSite Encoding: udata4 ## @Action Table Size: 26 bytes ## Action 1: ## A throw between Ltmp7 and Ltmp812 jumps to Ltmp913 on an exception. ## For type(s): __ZTIi@GOTPCREL+4 __ZTIPKc@GOTPCREL+4 ## Action 2: ## A throw between Ltmp812 and Leh_func_end1 does not have a landing pad. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133286 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LLVMTargetMachine.cpp
|
9fbd318d36e618fb08fb53bb48b7c848e617a8a7 |
|
16-Jun-2011 |
John McCall <rjmccall@apple.com> |
The ARC language-specific optimizer. Credit to Dan Gohman. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133108 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LLVMTargetMachine.cpp
|
d652b1368b1e381382951f450e5eeca870d91dd6 |
|
28-May-2011 |
Charles Davis <cdavis@mines.edu> |
Stub out support for Win64-style exceptions. Note that this is merely using the Win64 EH mechanism to implement GCC-style exceptions. LLVM supports hardly anything else at this point! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132234 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LLVMTargetMachine.cpp
|
402d9d9935fc1ee4e13675aae7f95072da50db69 |
|
22-May-2011 |
Chris Lattner <sabre@nondot.org> |
eliminate dependence on StandardPasses.h. The code generator's pass pipeline should eventually convert to PMBuilder, but I don't plan to do this. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@131819 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LLVMTargetMachine.cpp
|
254784f9e0ae59fc060ccd54b39cd1e94ac91356 |
|
06-May-2011 |
Rafael Espindola <rafael.espindola@gmail.com> |
Remove the DwarfTable enum. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130959 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LLVMTargetMachine.cpp
|
f1a5c7ec04002769f1638e64f7439589f0f926e6 |
|
30-Apr-2011 |
Rafael Espindola <rafael.espindola@gmail.com> |
Add all the plumbing needed for MC to expand cfi to the old tables in the final assembly. It is the same technique used when targeting assemblers that don't support .loc. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130587 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LLVMTargetMachine.cpp
|
a7b8c2b6a416052bd7b48d3c0d702d266c6ac3a2 |
|
29-Mar-2011 |
Daniel Dunbar <daniel@zuster.org> |
Integrated-As: Add support for setting the AllowTemporaryLabels flag via integrated-as. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@128431 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LLVMTargetMachine.cpp
|
a5c177e70a42f48e4885075c4c48aad0816a2817 |
|
21-Mar-2011 |
Bill Wendling <isanbard@gmail.com> |
We need to pass the TargetMachine object to the InstPrinter if we are printing the alias of an InstAlias instead of the thing being aliased. Because we need to know the features that are valid for an InstAlias. This is part of a work-in-progress. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@127986 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LLVMTargetMachine.cpp
|
31649e61bcead26a63c7cd452da90fff5e000b91 |
|
18-Mar-2011 |
Jim Grosbach <grosbach@apple.com> |
Beginnings of MC-JIT code generation. Proof-of-concept code that code-gens a module to an in-memory MachO object. This will be hooked up to a run-time dynamic linker library (see: llvm-rtdyld for similarly conceptual work for that part) which will take the compiled object and link it together with the rest of the system, providing back to the JIT a table of available symbols which will be used to respond to the getPointerTo*() queries. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@127916 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LLVMTargetMachine.cpp
|
b5e16af9ea04cc1f94ca631104e5e6be96546aa1 |
|
05-Mar-2011 |
Anton Korobeynikov <asl@math.spbu.ru> |
Some first rudimentary support for ARM EHABI: print exception table in "text mode". git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@127099 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LLVMTargetMachine.cpp
|
00141694fa9fd846a051e335c3ec6ba335aca602 |
|
28-Feb-2011 |
Dan Gohman <gohman@apple.com> |
Delete the GEPSplitter experiment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@126671 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LLVMTargetMachine.cpp
|
96aa78c8c5ef1a5f268539c9edc86569b436d573 |
|
23-Jan-2011 |
Rafael Espindola <rafael.espindola@gmail.com> |
Add support for the --noexecstack option. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@124077 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LLVMTargetMachine.cpp
|
3965b5e974d57f3e56a2c7f37d76d73e572dfb20 |
|
14-Jan-2011 |
Anton Korobeynikov <asl@math.spbu.ru> |
Add a possibility to switch between CFI directives- and table-based frame description emission. Currently all the backends use table-based stuff. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@123476 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LLVMTargetMachine.cpp
|
89cab93fe999f6d81b4b99a71ac797b7ecfec277 |
|
18-Dec-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Pass a Banner argument to the machine code verifier both from createMachineVerifierPass and MachineFunction::verify. The banner is printed before the machine code dump, just like the printer pass. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@122113 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LLVMTargetMachine.cpp
|
745dacc91d7ee9531bfba76b21beb5d4eef93a7d |
|
16-Dec-2010 |
Daniel Dunbar <daniel@zuster.org> |
MC: Make TargetAsmBackend available to the AsmStreamer. - Treaty talks on the non-proliferation of MC objects broke down. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@121949 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LLVMTargetMachine.cpp
|
89b9372605db2ce3b0085c84089e389f7bc1fbdd |
|
10-Dec-2010 |
Rafael Espindola <rafael.espindola@gmail.com> |
Fixed version of 121434 with no new memory leaks. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@121471 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LLVMTargetMachine.cpp
|
f7fd4aa2610f46467369de07f3ec669561d79be0 |
|
10-Dec-2010 |
Rafael Espindola <rafael.espindola@gmail.com> |
Revert my previous patch to make the valgrind bots happy. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@121461 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LLVMTargetMachine.cpp
|
1c952b9cc98e84b28f68f0f6cf11197263f89863 |
|
10-Dec-2010 |
Rafael Espindola <rafael.espindola@gmail.com> |
Initial support for the cfi directives. This is just enough to get f: .cfi_startproc nop .cfi_endproc assembled (on ELF). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@121434 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LLVMTargetMachine.cpp
|
195a0ce484cd12a5adae9184188f6d0fb52b84c0 |
|
19-Nov-2010 |
Rafael Espindola <rafael.espindola@gmail.com> |
Change some methods in MCDwarf.cpp to be able to handle an arbitrary MCStreamer instead of just MCObjectStreamer. Address changes cannot be as efficient as we have to use DW_LNE_set_addres, but at least most of the logic is shared. This will be used so that, with CodeGen still using EmitDwarfLocDirective, llvm-gcc is able to produce debug_line sections without needing an assembler that supports .loc. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119777 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LLVMTargetMachine.cpp
|
bd77d399c4cdc2440abde96b2861b149fae4f33e |
|
18-Nov-2010 |
Dan Gohman <gohman@apple.com> |
Oops, missed this file when remaing ExpandPseudos to ExpandISelPseudos. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119717 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LLVMTargetMachine.cpp
|
c4af4638dfdab0dc3b6257276cfad2ee45053060 |
|
17-Nov-2010 |
Evan Cheng <evan.cheng@apple.com> |
Remove ARM isel hacks that fold large immediates into a pair of add, sub, and, and xor. The 32-bit move immediates can be hoisted out of loops by machine LICM but the isel hacks were preventing them. Instead, let peephole optimization pass recognize registers that are defined by immediates and the ARM target hook will fold the immediates in. Other changes include 1) do not fold and / xor into cmp to isel TST / TEQ instructions if there are multiple uses. This happens when the 'and' is live out, machine sink would have sinked the computation and that ends up pessimizing code. The peephole pass would recognize situations where the 'and' can be toggled to define CPSR and eliminate the comparison anyway. 2) Move peephole pass to after machine LICM, sink, and CSE to avoid blocking important optimizations. rdar://8663787, rdar://8241368 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119548 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LLVMTargetMachine.cpp
|
668ac2fdae69ed358ecf690d6a07428e5a9ee2f7 |
|
16-Nov-2010 |
Dan Gohman <gohman@apple.com> |
Split pseudo-instruction expansion into a separate pass, to make it easier to debug, and to avoid complications when the CFG changes in the middle of the instruction selection process. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119382 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LLVMTargetMachine.cpp
|
6da24ca51d0a0483b4ff1537a177bd172997f129 |
|
08-Nov-2010 |
Che-Liang Chiou <clchiou@gmail.com> |
Add registry hook for assembly text output git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118394 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LLVMTargetMachine.cpp
|
4021fccf9fdb60906e5f16c98e72042240867495 |
|
18-Oct-2010 |
Dan Gohman <gohman@apple.com> |
Add TypeBasedAliasAnalysis to the standard pass lists. Note that it is currently inert by default. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116732 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LLVMTargetMachine.cpp
|
c1be92f3bb9158eade30d97db6997e2fe78150ab |
|
18-Oct-2010 |
Dan Gohman <gohman@apple.com> |
Make BasicAliasAnalysis a normal AliasAnalysis implementation which does normal initialization and normal chaining. Change the default AliasAnalysis implementation to NoAlias. Update StandardCompileOpts.h and friends to explicitly request BasicAliasAnalysis. Update tests to explicitly request -basicaa. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116720 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LLVMTargetMachine.cpp
|
ff9dfedd101e1a591ec8f7fac9999777cde80efb |
|
08-Oct-2010 |
Rafael Espindola <rafael.espindola@gmail.com> |
Call InitSections in llc and clang so that the binaries produced by them are easier to diff with those produced by llvm-mc. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116095 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LLVMTargetMachine.cpp
|
22efc18f12d8d5d0fa23b559121d211f4ea222f6 |
|
31-Aug-2010 |
Duncan Sands <baldrick@free.fr> |
Stop using the dom frontier in DwarfEHPrepare by not promoting alloca's any more. I plan to reimplement alloca promotion using SSAUpdater later. It looks like Bill's URoR logic really always needs domtree, so the pass now always asks for domtree info. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112597 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LLVMTargetMachine.cpp
|
a273442891ae20fd8192526132e3819ea9e5eda9 |
|
24-Aug-2010 |
Jim Grosbach <grosbach@apple.com> |
Move enabling the local stack allocation pass into the target where it belongs. For now it's still a command line option, but the interface to the generic code doesn't need to know that. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111942 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LLVMTargetMachine.cpp
|
3d72367d30c9ce6f387764a028763f7a366cc443 |
|
14-Aug-2010 |
Jim Grosbach <grosbach@apple.com> |
Add a local stack object block allocation pass. This is still an experimental pass that allocates locals relative to one another before register allocation and then assigns them to actual stack slots as a block later in PEI. This will eventually allow targets with limited index offset range to allocate additional base registers (not just FP and SP) to more efficiently reference locals, as well as handle situations where locals cannot be referenced via SP or FP at all (dynamic stack realignment together with variable sized objects, for example). It's currently incomplete and almost certainly buggy. Work in progress. Disabled by default and gated via the -enable-local-stack-alloc command line option. rdar://8277890 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111059 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LLVMTargetMachine.cpp
|
c92bb50a0cdecccfa53573df720d5893f83f615e |
|
13-Aug-2010 |
Jim Grosbach <grosbach@apple.com> |
tidy up whitespace a bit git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111019 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LLVMTargetMachine.cpp
|
6cdb1abe4e4f6364649e7ef656589441754e82ae |
|
10-Aug-2010 |
Bill Wendling <isanbard@gmail.com> |
Merge the OptimizeExts and OptimizeCmps passes into one PeepholeOptimizer pass. This pass should expand with all of the small, fine-grained optimization passes to reduce compile time and increase happiment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110627 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LLVMTargetMachine.cpp
|
e4ddbdfd3cf031034020671d03626f0373fbd5ca |
|
06-Aug-2010 |
Bill Wendling <isanbard@gmail.com> |
Add the Optimize Compares pass (disabled by default). This pass tries to remove comparison instructions when possible. For instance, if you have this code: sub r1, 1 cmp r1, 0 bz L1 and "sub" either sets the same flag as the "cmp" instruction or could be converted to set the same flag, then we can eliminate the "cmp" instruction all together. This is a important for ARM where the ALU instructions could set the CPSR flag, but need a special suffix ('s') to do so. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110423 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LLVMTargetMachine.cpp
|
73cf709a08d480c4315dc4aa9f644cf86494c4cf |
|
05-Aug-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Remove double-def checking from MachineVerifier, so a register does not have to be killed before being redefined. These checks are usually disabled, and usually fail when enabled. We de facto allow live registers to be redefined without a kill, the corresponding assertions in RegScavenger were removed long ago. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110362 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LLVMTargetMachine.cpp
|
af33b7b4a775073585f2037bf4cb56f1cd87d13c |
|
05-Aug-2010 |
Bill Wendling <isanbard@gmail.com> |
The lower invoke pass needs to have unreachable code elimination run after it because it could create such things. This fixes a MingW buildbot test failure. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110279 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LLVMTargetMachine.cpp
|
2464d618c0043b8dcd13170f145f5add7738aad3 |
|
04-Aug-2010 |
Bill Wendling <isanbard@gmail.com> |
The EH prepare passes really want to be the last passes run before code-gen. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110248 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LLVMTargetMachine.cpp
|
1abcd06856df324eac98d4bf5ba673fb77ae6a11 |
|
29-Jul-2010 |
Benjamin Kramer <benny.kra@googlemail.com> |
Plug the remaining MC leaks by giving MCObjectStreamer/MCAsmStreamer ownership of the TargetAsmBackend and the MCCodeEmitter. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109767 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LLVMTargetMachine.cpp
|
8c64b9766e654079339ea7f3a2da152f18d00179 |
|
24-Jul-2010 |
Anton Korobeynikov <asl@math.spbu.ru> |
Add hook to insert late LLVM=>LLVM passes just before isel git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109354 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LLVMTargetMachine.cpp
|
c96a82a53415fd0b6cb1bbea2593dc18683c70cc |
|
22-Jul-2010 |
Reid Kleckner <reid@kleckner.net> |
Initial modifications to MCAssembler and TargetMachine for the MCJIT. Patch by Olivier Meurant! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109080 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LLVMTargetMachine.cpp
|
84023e0fbefc406a4c611d3d64a10df5d3a97dd7 |
|
10-Jul-2010 |
Dan Gohman <gohman@apple.com> |
Reapply bottom-up fast-isel, with several fixes for x86-32: - Check getBytesToPopOnReturn(). - Eschew ST0 and ST1 for return values. - Fix the PIC base register initialization so that it doesn't ever fail to end up the top of the entry block. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108039 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LLVMTargetMachine.cpp
|
02266e29f9250d74c5ec720aff23add3410ae920 |
|
09-Jul-2010 |
Bob Wilson <bob.wilson@apple.com> |
--- Reverse-merging r107947 into '.': U utils/TableGen/FastISelEmitter.cpp --- Reverse-merging r107943 into '.': U test/CodeGen/X86/fast-isel.ll U test/CodeGen/X86/fast-isel-loads.ll U include/llvm/Target/TargetLowering.h U include/llvm/Support/PassNameParser.h U include/llvm/CodeGen/FunctionLoweringInfo.h U include/llvm/CodeGen/CallingConvLower.h U include/llvm/CodeGen/FastISel.h U include/llvm/CodeGen/SelectionDAGISel.h U lib/CodeGen/LLVMTargetMachine.cpp U lib/CodeGen/CallingConvLower.cpp U lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp U lib/CodeGen/SelectionDAG/FunctionLoweringInfo.cpp U lib/CodeGen/SelectionDAG/FastISel.cpp U lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp U lib/CodeGen/SelectionDAG/ScheduleDAGSDNodes.cpp U lib/CodeGen/SelectionDAG/InstrEmitter.cpp U lib/CodeGen/SelectionDAG/TargetLowering.cpp U lib/Target/XCore/XCoreISelLowering.cpp U lib/Target/XCore/XCoreISelLowering.h U lib/Target/X86/X86ISelLowering.cpp U lib/Target/X86/X86FastISel.cpp U lib/Target/X86/X86ISelLowering.h git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107987 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LLVMTargetMachine.cpp
|
bf87e2491789d6ff788629e22e93d0c1ca02ae85 |
|
09-Jul-2010 |
Dan Gohman <gohman@apple.com> |
Re-apply bottom-up fast-isel, with fixes. Be very careful to avoid emitting a DBG_VALUE after a terminator, or emitting any instructions before an EH_LABEL. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107943 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LLVMTargetMachine.cpp
|
f59514152511694d46ca8b8d2db466d256ab5759 |
|
08-Jul-2010 |
Dan Gohman <gohman@apple.com> |
Revert 107840 107839 107813 107804 107800 107797 107791. Debug info intrinsics win for now. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107850 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LLVMTargetMachine.cpp
|
4df83ed159f21fdf73a57729c3e9d8c9fcd73607 |
|
07-Jul-2010 |
Dan Gohman <gohman@apple.com> |
Implement bottom-up fast-isel. This has the advantage of not requiring a separate DCE pass over MachineInstrs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107804 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LLVMTargetMachine.cpp
|
63b95a6f820d768797b28bbfd5c12fabf74b7f1d |
|
01-Jul-2010 |
Dan Gohman <gohman@apple.com> |
Temporarily disable on-demand fast-isel. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107393 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LLVMTargetMachine.cpp
|
a528bc0e8af8e4d70ba03e03319cce7c5775e4ea |
|
01-Jul-2010 |
Dan Gohman <gohman@apple.com> |
Fast isel no longer needs DeadMachineInstrElim to clean up after it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107381 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LLVMTargetMachine.cpp
|
0879e2279025522a070d57a7c4e0122daef94e2f |
|
25-Jun-2010 |
Dan Gohman <gohman@apple.com> |
Add some comments. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106809 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LLVMTargetMachine.cpp
|
700bfada6375546f82000bdd1b4cdbe87beebea5 |
|
28-May-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Add a -regalloc=default option that chooses a register allocator based on the -O optimization level. This only really affects llc for now because both the llvm-gcc and clang front ends override the default register allocator. I intend to remove that code later. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104904 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LLVMTargetMachine.cpp
|
cb8326dc09d900688b2d15bd9c977d1c3b722427 |
|
26-May-2010 |
Daniel Dunbar <daniel@zuster.org> |
MC: Add TargetMachine support for setting the value of MCRelaxAll with -filetype=obj. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104747 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LLVMTargetMachine.cpp
|
fdb5a8617996a20370756962e34c2e80176d6e87 |
|
23-May-2010 |
Daniel Dunbar <daniel@zuster.org> |
MC: Add an MCLoggingStreamer, for use in debugging integrated-as mismatches. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104463 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LLVMTargetMachine.cpp
|
3538c808f8fd1d4124f0cda4c962467ec8ae5b70 |
|
18-May-2010 |
Daniel Dunbar <daniel@zuster.org> |
llc (et al): Add support for --show-encoding and --show-inst. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104029 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LLVMTargetMachine.cpp
|
bd616b69f7ab072a623b55a244bf61541eac5f32 |
|
14-May-2010 |
Daniel Dunbar <daniel@zuster.org> |
XFAIL the test I added with vg_leak, apparently it is the first and only llc -filetype=obj test, and -filetype=obj leaks a few objects. Added a FIXME, we need to sort out the ownership model for the various MC objects. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103769 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LLVMTargetMachine.cpp
|
55e59c186303ff02c0be7429da3b1b36c347f164 |
|
19-Apr-2010 |
Dan Gohman <gohman@apple.com> |
Code that needs a TargetMachine should have access to one directly, rather than just getting one through a TargetLowering. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101802 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LLVMTargetMachine.cpp
|
f2b910922d80b254a06a62e350b1b6ae15f390b5 |
|
17-Apr-2010 |
Evan Cheng <evan.cheng@apple.com> |
Fix codegen passes. -disable-ssc shouldn't disable postra machine licm. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101622 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LLVMTargetMachine.cpp
|
09010a30fdb58426fc06c5c97956db35dcd90979 |
|
12-Apr-2010 |
Evan Cheng <evan.cheng@apple.com> |
Enable post regalloc machine licm by default. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101023 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LLVMTargetMachine.cpp
|
4b38debf597a22e2db02aafdaa40264d7770c1ad |
|
07-Apr-2010 |
Anton Korobeynikov <asl@math.spbu.ru> |
Remove late ARM codegen optimization pass committed by accident. It is not ready for public yet. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100673 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LLVMTargetMachine.cpp
|
977dfcefa1b139de56fd17e108b263e39e16504f |
|
07-Apr-2010 |
Anton Korobeynikov <asl@math.spbu.ru> |
Add hook to insert late LLVM=>LLVM passes just before isel git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100640 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LLVMTargetMachine.cpp
|
d94671a25e65918557a2c03c0fc12a60a5d138bf |
|
07-Apr-2010 |
Evan Cheng <evan.cheng@apple.com> |
Post regalloc LICM. Work in progress. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100592 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LLVMTargetMachine.cpp
|
b23569aff0a6d2b231cb93cc4acd0ac060ba560f |
|
04-Apr-2010 |
Chris Lattner <sabre@nondot.org> |
Momentous day: remove the "O" member from AsmPrinter. Now all "asm printering" happens through MCStreamer. This also Streamerizes PIC16 debug info, which escaped my attention. This removes a leak from LLVMTargetMachine of the 'legacy' output stream. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100327 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LLVMTargetMachine.cpp
|
d374087be5360a353a4239a155b1227057145f48 |
|
04-Apr-2010 |
Chris Lattner <sabre@nondot.org> |
fix an ugly wart in the MCInstPrinter api where the raw_ostream to print an instruction to had to be specified at MCInstPrinter construction time instead of being able to pick at each call to printInstruction. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100307 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LLVMTargetMachine.cpp
|
11d53c129fc9c2a4510605ec0a1696f58750af52 |
|
13-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
rearrange MCContext ownership. Before LLVMTargetMachine created it and passing off ownership to AsmPrinter. Now MachineModuleInfo creates it and owns it by value. This allows us to use MCSymbols more consistently throughout the rest of the code generator, and simplifies a bit of code. This also allows MachineFunction to keep an MCContext reference handy, and cleans up the TargetRegistry interfaces for AsmPrinters. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98450 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LLVMTargetMachine.cpp
|
5ef31a039dbb9c36cfd78442b3554d1b6974ec4c |
|
12-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
make the mangler take an MCContext instead of an MAI. No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98363 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LLVMTargetMachine.cpp
|
fdab14b10564283028e9bdb628d095feae7fa071 |
|
12-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
remove MAI argument from createAsmStreamer since it can get it from the context now. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98361 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LLVMTargetMachine.cpp
|
c18409aed80ba1c6c5998befd3c3c8edc865c423 |
|
11-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
change MCContext to always have an MCAsmInfo. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98293 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LLVMTargetMachine.cpp
|
1f3e445184e5ca2aa4295c2a77f2a4e0b957fea1 |
|
11-Mar-2010 |
Daniel Dunbar <daniel@zuster.org> |
MC: Provide MCAssembler with a TargetAsmBackend. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98222 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LLVMTargetMachine.cpp
|
fac4f1f1815b54346a805834a8c19d573ce8856c |
|
10-Mar-2010 |
Evan Cheng <evan.cheng@apple.com> |
Enable machine cse pass. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98132 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LLVMTargetMachine.cpp
|
7ef1840d9e17f8064c87982a09b99279365db700 |
|
09-Mar-2010 |
Evan Cheng <evan.cheng@apple.com> |
Revert accidental commit. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98045 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LLVMTargetMachine.cpp
|
31f94c7c22cbf59753764bc17130dca6a73c0b4e |
|
09-Mar-2010 |
Evan Cheng <evan.cheng@apple.com> |
- Make the machine cse dumb coalescer (as opposed to the more awesome simple coalescer) handle sub-register classes. - Add heuristics to avoid non-profitable cse. Given the current lack of live range splitting, avoid cse when an expression has PHI use and the would be new use is in a BB where the expression wasn't already being used. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98043 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LLVMTargetMachine.cpp
|
a76e816844debe822c23932ef6a71c127d073063 |
|
05-Mar-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
We don't really care about correct register liveness information after the post-ra scheduler has run. Disable the verifier checks that late in the game. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97837 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LLVMTargetMachine.cpp
|
c46e293e946d109319d382b4547b4f47806d567a |
|
04-Mar-2010 |
Evan Cheng <evan.cheng@apple.com> |
Run machine licm before machine cse to avoid messing up licm opportunities. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97752 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LLVMTargetMachine.cpp
|
9763f709e229ff39d9f00a1086c07dfa0398b485 |
|
04-Mar-2010 |
Evan Cheng <evan.cheng@apple.com> |
Rename -machine-cse to -enable-machine-cse. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97713 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LLVMTargetMachine.cpp
|
d89347cb49178da65a1c72cde5d54e79007d57ae |
|
03-Mar-2010 |
Evan Cheng <evan.cheng@apple.com> |
Add an option to enable machine cse (it's not doing anything yet. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97627 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LLVMTargetMachine.cpp
|
8772f5041ce8e98695655a72a54b952583630617 |
|
28-Feb-2010 |
Dan Gohman <gohman@apple.com> |
Add a flag to addPassesToEmit* to disable the Verifier pass run after LSR, so that clients can opt in. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97357 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LLVMTargetMachine.cpp
|
60df9077ebe2a38723beadedd88e349f9aa214cb |
|
26-Feb-2010 |
Bob Wilson <bob.wilson@apple.com> |
Remove unused "NoPRE" parameter in GVN and createGVNPass(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97235 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LLVMTargetMachine.cpp
|
bf9b221c006a99d6f117c1048412859d5637bcde |
|
13-Feb-2010 |
Bob Wilson <bob.wilson@apple.com> |
Besides removing phi cycles that reduce to a single value, also remove dead phi cycles. Adjust a few tests to keep dead instructions from being optimized away. This (together with my previous change for phi cycles) fixes Apple radar 7627077. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96057 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LLVMTargetMachine.cpp
|
86020e46289643de2f8c7603b550ffc8b6aff376 |
|
13-Feb-2010 |
Chris Lattner <sabre@nondot.org> |
give MCCodeEmitters access to the current MCContext. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96038 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LLVMTargetMachine.cpp
|
572645cf84060c0fc25cb91d38cb9079918b3a88 |
|
12-Feb-2010 |
Dan Gohman <gohman@apple.com> |
Reapply the new LoopStrengthReduction code, with compile time and bug fixes, and with improved heuristics for analyzing foreign-loop addrecs. This change also flattens IVUsers, eliminating the stride-oriented groupings, which makes it easier to work with. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95975 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LLVMTargetMachine.cpp
|
fe61fb1e1082c81653ed78efd6d471592a2e57ad |
|
12-Feb-2010 |
Bob Wilson <bob.wilson@apple.com> |
Add a new pass on machine instructions to optimize away PHI cycles that reduce down to a single value. InstCombine already does this transformation but DAG legalization may introduce new opportunities. This has turned out to be important for ARM where 64-bit values are split up during type legalization: InstCombine is not able to remove the PHI cycles on the 64-bit values but the separate 32-bit values can be optimized. I measured the compile time impact of this (running llc on 176.gcc) and it was not significant. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95951 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LLVMTargetMachine.cpp
|
00a99a35840451a291eb61a192a750908a4073ae |
|
06-Feb-2010 |
Evan Cheng <evan.cheng@apple.com> |
Run codegen dce pass for all targets at all optimization levels. Previously it's only run for x86 with fastisel. I've found it being very effective in eliminating some obvious dead code as result of formal parameter lowering especially when tail call optimization eliminated the need for some of the loads from fixed frame objects. It also shrinks a number of the tests. A couple of tests no longer make sense and are now eliminated. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95493 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LLVMTargetMachine.cpp
|
5669e3009761dff20b67e18a382c334041887928 |
|
03-Feb-2010 |
Chris Lattner <sabre@nondot.org> |
change addPassesToEmitFile to return true on failure instead of its input, add -filetype=null for performance testing and remove -filetype=dynlib, which isn't planned to be implemented. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95202 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LLVMTargetMachine.cpp
|
6c8d6ec2a7906733401aae121a5e1eacf477c0f5 |
|
03-Feb-2010 |
Chris Lattner <sabre@nondot.org> |
pass an instprinter into the AsmPrinter if it is available. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95168 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LLVMTargetMachine.cpp
|
be2e76bbb358ba58aecc05c94fb98cf5c2981bd2 |
|
03-Feb-2010 |
Chris Lattner <sabre@nondot.org> |
make any use of the "O" stream in asmprinter print to stderr if in filetype=obj mode. This is a hack, and will live until dwarf emission and other random stuff that is not yet going through MCStreamer is upgraded. It only impacts filetype=obj mode. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95166 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LLVMTargetMachine.cpp
|
ac7798e9062f9bc371709ed445e1b3153b581e9a |
|
03-Feb-2010 |
Chris Lattner <sabre@nondot.org> |
Hook up -filetype=obj through the MachO streamer. Here's a demo: $ cat t.ll @g = global i32 42 $ llc t.ll -o t.o -filetype=obj $ nm t.o 00000000 D _g There is still a ton of work left. Instructions are not being encoded yet apparently. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95162 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LLVMTargetMachine.cpp
|
6cafdcc9afb294b62962f94f03cc48d6b18712d0 |
|
03-Feb-2010 |
Chris Lattner <sabre@nondot.org> |
use OwningPtr and factor code better. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95156 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LLVMTargetMachine.cpp
|
56591ab218639d8a6e4c756ca37adaf20215c3b6 |
|
03-Feb-2010 |
Chris Lattner <sabre@nondot.org> |
refactor code so that LLVMTargetMachine creates the asmstreamer and mccontext instead of having AsmPrinter do it. This allows other types of MCStreamer's to be passed in. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95155 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LLVMTargetMachine.cpp
|
e16ad1a9833c89965c921f137cfb6c424ff3e9c2 |
|
02-Feb-2010 |
Chris Lattner <sabre@nondot.org> |
simplify getVerboseAsm git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95153 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LLVMTargetMachine.cpp
|
1f21990284906b1d3ed244d99808c6dade04d295 |
|
02-Feb-2010 |
Chris Lattner <sabre@nondot.org> |
move handling of asm-verbose out of AsmPrinter.cpp into LLVMTargetMachine.cpp with the rest of the command line options. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95152 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LLVMTargetMachine.cpp
|
3813d8adf3788dd01a4cb9db01c122cd5e6a13b9 |
|
02-Feb-2010 |
Chris Lattner <sabre@nondot.org> |
Remove a bunch of stuff around the edges of the ELF writer. Now the only use of the ELF writer is the JIT, which won't be easy to fix in the short term. :( :( git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95148 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LLVMTargetMachine.cpp
|
211edae4843f5c2ee9c376e88e4cf0ecc8745f03 |
|
02-Feb-2010 |
Chris Lattner <sabre@nondot.org> |
eliminate FileModel::Model, just use CodeGenFileType. The client of the code generator shouldn't care what object format a target uses. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95124 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LLVMTargetMachine.cpp
|
b5c5160a554cb0debeb7913287d9c099a753a59e |
|
02-Feb-2010 |
Chris Lattner <sabre@nondot.org> |
eliminate all forms of addPassesToEmitMachineCode except the one used by the JIT. Remove all forms of addPassesToEmitFileFinish except the one used by the static code generator. Inline the remaining version of addPassesToEmitFileFinish into its only caller. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95109 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LLVMTargetMachine.cpp
|
0823d2a654cb3a075016f6efd21359ed4f5aca21 |
|
02-Feb-2010 |
Chris Lattner <sabre@nondot.org> |
Inline addAssemblyEmitter into its one real caller and delete the -print-emitted-asm option. The JIT shouldn't have to pull in the asmprinter. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95100 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LLVMTargetMachine.cpp
|
39bdc78e6fcc2a152c6143952c23fba5db983227 |
|
02-Feb-2010 |
Nate Begeman <natebegeman@mac.com> |
Kill the Mach-O writer, and temporarily make filetype=obj an error. The MCStreamer based assemblers will take over for this functionality. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95033 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LLVMTargetMachine.cpp
|
12bdbf1ca80a1c7a18020f8fd4482180afcfe6f4 |
|
22-Jan-2010 |
Dan Gohman <gohman@apple.com> |
Revert r94066, which was the patch which added a Verifier pass after LoopStrengthReduce, as it's causing too much trouble (even with the old LoopStrengthReduce code). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94172 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LLVMTargetMachine.cpp
|
fca37064789620d80580bc19281ef30141e25dc1 |
|
21-Jan-2010 |
Dan Gohman <gohman@apple.com> |
Run the verifier after LSR, to help catch use-before-def errors before they reach codegen. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94066 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LLVMTargetMachine.cpp
|
516ab96de3eb0c80ac9c4867cc2076ef4749625e |
|
16-Jan-2010 |
Bob Wilson <bob.wilson@apple.com> |
Run the pre-register allocation tail duplication pass by default. Remove the -pre-regalloc-taildup command-line option, and add a new -disable-early-taildup option. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93597 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LLVMTargetMachine.cpp
|
3fe980b127a61608bd6d44c0939ba716ca21625c |
|
15-Jan-2010 |
Nate Begeman <natebegeman@mac.com> |
Hook up llc's -filetype=obj to use MCStreamer if an MCCodeEmitter is available. Remove most of old Mach-O Writer support, it has been replaced by MCMachOStreamer Further refactoring to completely remove MachOWriter and drive the object file writer with the AsmPrinter MCInst/MCSection logic is forthcoming. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93527 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LLVMTargetMachine.cpp
|
86e69fa901ea0e04bc24ae3d8f757bccc84c10e6 |
|
14-Jan-2010 |
Jim Grosbach <grosbach@apple.com> |
Add comment explaining the necessity of r93456 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93459 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LLVMTargetMachine.cpp
|
9f82da7cbfe0c9f1b2c4bc7d7a9a9b5d35bea488 |
|
14-Jan-2010 |
Jim Grosbach <grosbach@apple.com> |
Dwarf EH prepare needs to be run after SjLj prepare. Otherwise, catch info can get misplaced when a selector ends up more than one block removed from the parent invoke(s). This could happen when a landing pad is shared by multiple invokes and is also a target of a normal edge from elsewhere. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93456 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LLVMTargetMachine.cpp
|
81d22d87de93f501f90f55b6bbc63f5dd286797a |
|
13-Jan-2010 |
Evan Cheng <evan.cheng@apple.com> |
Re-enable extension optimization pass. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93313 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LLVMTargetMachine.cpp
|
262a96edb436543227b9b5e49f95a082e1c73b5f |
|
13-Jan-2010 |
Evan Cheng <evan.cheng@apple.com> |
Disable opt-ext pass to unbreak the build for now. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93286 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LLVMTargetMachine.cpp
|
d9e385f411abc1ec41130d8010a9de4a93dd1042 |
|
13-Jan-2010 |
Evan Cheng <evan.cheng@apple.com> |
Remove debug option I accidentally left in. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93285 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LLVMTargetMachine.cpp
|
7da9ecf9677b751d81515f95168ae3cb2df54160 |
|
13-Jan-2010 |
Evan Cheng <evan.cheng@apple.com> |
Add a quick pass to optimize sign / zero extension instructions. For targets where the pre-extension values are available in the subreg of the result of the extension, replace the uses of the pre-extension value with the result + extract_subreg. For now, this pass is fairly conservative. It only perform the replacement when both the pre- and post- extension values are used in the block. It will miss cases where the post-extension values are live, but not used. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93278 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LLVMTargetMachine.cpp
|
541e9ae3ad39f6ebca7649ce0c640ff2c64bfb84 |
|
07-Jan-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Allow double defs after tail duplication. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92874 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LLVMTargetMachine.cpp
|
2800eb1d30aea4177d6ea42adddd70e01ede8699 |
|
04-Jan-2010 |
David Greene <greened@obbligato.org> |
Change errs() to dbgs(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92524 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LLVMTargetMachine.cpp
|
f4f43cb5011611d44219ffb1caa988f5adf305bf |
|
21-Dec-2009 |
Eric Christopher <echristo@apple.com> |
Fix setting and default setting of code model for jit. Do this by allowing backends to override routines that will default the JIT and Static code generation to an appropriate code model for the architecture. Should fix PR 5773. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91824 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LLVMTargetMachine.cpp
|
2013e2c6bdc2ea5d9f9ddc5f3388c9349fb7e467 |
|
17-Dec-2009 |
Evan Cheng <evan.cheng@apple.com> |
Remove debugging code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91604 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LLVMTargetMachine.cpp
|
04149f7ffd033773adfe85e4acf3f560e29bd47d |
|
17-Dec-2009 |
Evan Cheng <evan.cheng@apple.com> |
Revert 91280-91283, 91286-91289, 91291, 91293, 91295-91296. It apparently introduced a non-deterministic behavior in the optimizer somewhere. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91598 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LLVMTargetMachine.cpp
|
79fc6f44b64f47b8a7d5e298c9f3c596b89fa88d |
|
04-Dec-2009 |
Evan Cheng <evan.cheng@apple.com> |
Add a pre-regalloc tail duplication pass. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90567 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LLVMTargetMachine.cpp
|
2d521e51acd5f1a0100cbbe4c611a35c978c2456 |
|
26-Nov-2009 |
Bob Wilson <bob.wilson@apple.com> |
Rename new TailDuplicationPass to avoid name conflict with the old one. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89968 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LLVMTargetMachine.cpp
|
15acadde5f87703da5f36721a19c09a7e3f97f53 |
|
26-Nov-2009 |
Bob Wilson <bob.wilson@apple.com> |
Split tail duplication into a separate pass. This is needed to avoid running tail duplication when doing branch folding for if-conversion, and we also want to be able to run tail duplication earlier to fix some reg alloc problems. Move the CanFallThrough function from BranchFolding to MachineBasicBlock so that it can be shared by TailDuplication. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89904 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LLVMTargetMachine.cpp
|
f5a7a2c84a1951151fee4e7e34d1d94ef0c31fa8 |
|
24-Nov-2009 |
Devang Patel <dpatel@apple.com> |
Remove DebugLabelFolder pass. It is not used by dwarf writer anymore. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89790 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LLVMTargetMachine.cpp
|
2e7e94826a4cf6715b4c07d779fb84994c0bc47b |
|
20-Nov-2009 |
Dan Gohman <gohman@apple.com> |
Add an experimental option to run gep-splitting and no-load GVN just before codegen. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89439 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LLVMTargetMachine.cpp
|
517e2556e39973ae65f58fad9865eef3a5a0966b |
|
05-Nov-2009 |
Evan Cheng <evan.cheng@apple.com> |
Now that code placement optimization pass is run for JIT, make sure it's before pre-emit passes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86092 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LLVMTargetMachine.cpp
|
522c01ac6585604d53172daa970443d1fcaca3b1 |
|
04-Nov-2009 |
Eric Christopher <echristo@apple.com> |
Add some options to disable various code gen optimizations. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86044 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LLVMTargetMachine.cpp
|
499a9377a3dcce85f39f04b2ab39c3dffa3025ef |
|
31-Oct-2009 |
Dan Gohman <gohman@apple.com> |
Factor out more code into addCommonCodeGenPasses. The JIT wasn't previously running CodePlacementOpt. Also print headers before each dump in -print-machineinstrs mode, so that it's clear which dump is which. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85681 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LLVMTargetMachine.cpp
|
9f476e3179713a1e93bbf634855b85a93f8653cd |
|
31-Oct-2009 |
Dan Gohman <gohman@apple.com> |
Remove CodeGenLICM. It's largely obsoleted by MachineLICM's new ability to unfold loop-invariant loads. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85657 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LLVMTargetMachine.cpp
|
8bedf97f683bd5edb9308799a5e525de137d635c |
|
29-Oct-2009 |
Bill Wendling <isanbard@gmail.com> |
Don't put in these EH changes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85460 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LLVMTargetMachine.cpp
|
f58898fd41a61d8f02657c3ecddb085c39c0d773 |
|
29-Oct-2009 |
Bill Wendling <isanbard@gmail.com> |
Reverting r85338 for now. It's causing a bootstrap failure on PPC darwin9. --- Reverse-merging r85338 into '.': U lib/CodeGen/SimpleRegisterCoalescing.cpp U lib/CodeGen/SimpleRegisterCoalescing.h git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85454 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LLVMTargetMachine.cpp
|
a597103c328e29fb763e7a4864bd7c29a588fc9d |
|
28-Oct-2009 |
Bob Wilson <bob.wilson@apple.com> |
Revert r85346 change to control tail merging by CodeGenOpt::Level. I'm going to redo this using the OptimizeForSize function attribute. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85426 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LLVMTargetMachine.cpp
|
cd4f04d6bcb7aefa24d92582fbadfe17519f4756 |
|
28-Oct-2009 |
Bob Wilson <bob.wilson@apple.com> |
Record CodeGen optimization level in the BranchFolding pass so that we can use it to control tail merging when there is a tradeoff between performance and code size. When there is only 1 instruction in the common tail, we have been merging. That can be good for code size but is a definite loss for performance. Now we will avoid tail merging in that case when the optimization level is "Aggressive", i.e., "-O3". Radar 7338114. Since the IfConversion pass invokes BranchFolding, it too needs to know the optimization level. Note that I removed the RegisterPass instantiation for IfConversion because it required a default constructor. If someone wants to keep that for some reason, we can add a default constructor with a hard-wired optimization level. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85346 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LLVMTargetMachine.cpp
|
fa16354e0370fe884830286923352268b036737d |
|
16-Oct-2009 |
Evan Cheng <evan.cheng@apple.com> |
Change createPostRAScheduler so it can be turned off at llc -O1. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84273 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LLVMTargetMachine.cpp
|
629adde69953fa53362d20ddb7b4e67ed78b8ae3 |
|
30-Sep-2009 |
Evan Cheng <evan.cheng@apple.com> |
Add a target hook to add pre- post-regalloc scheduling passes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83144 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LLVMTargetMachine.cpp
|
0dad89fa94536284d51f60868326294b725a0c61 |
|
30-Sep-2009 |
David Goodwin <david_goodwin@apple.com> |
Remove -post-RA-schedule flag and add a TargetSubtarget method to enable post-register-allocation scheduling. By default it is off. For ARM, enable/disable with -mattr=+/-postrasched. Enable by default for cortex-a8. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83122 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LLVMTargetMachine.cpp
|
483011018efec3972fb2b003d6e8b6a095e4d9e5 |
|
25-Sep-2009 |
Evan Cheng <evan.cheng@apple.com> |
Flip -disable-post-RA-scheduler to -post-RA-scheduler. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82803 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LLVMTargetMachine.cpp
|
6f65d79750154c92c3e184c8cf3233a66c411c87 |
|
16-Sep-2009 |
Dan Gohman <gohman@apple.com> |
Add a new pass for doing late hoisting of floating-point and vector constants out of loops. These aren't covered by the regular LICM pass, because in LLVM IR constants don't require separate instructions. They're not always covered by the MachineLICM pass either, because it doesn't know how to unfold folded constant-pool loads. This is somewhat experimental at this point, and off by default. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82076 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LLVMTargetMachine.cpp
|
e29fea4434b784bd8d908088c0ee4d4788080088 |
|
26-Aug-2009 |
Dan Gohman <gohman@apple.com> |
-fast is now -O0. -fast-isel is no longer experimental. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80104 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LLVMTargetMachine.cpp
|
cf143a4d917699f8f4202f331fa9e184070471fb |
|
23-Aug-2009 |
Chris Lattner <sabre@nondot.org> |
remove std::ostream versions of printing stuff for MBB and MF, upgrading a few things to use raw_ostream git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79811 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LLVMTargetMachine.cpp
|
af76e592c7f9deff0e55c13dbb4a34f07f1c7f64 |
|
22-Aug-2009 |
Chris Lattner <sabre@nondot.org> |
Rename TargetAsmInfo (and its subclasses) to MCAsmInfo. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79763 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LLVMTargetMachine.cpp
|
8b818d7e98309125c6058c4ea72a7dc73b031db2 |
|
17-Aug-2009 |
Jim Grosbach <grosbach@apple.com> |
Move the sjlj exception handling conversions to a back-end pass where they more properly belong. This allows removing the front-end conditionalized SJLJ code, and cleans up the generated IR considerably. All of the infrastructure code (calling _Unwind_SjLj_Register/Unregister, etc) is added by the SjLjEHPrepare pass. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79250 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LLVMTargetMachine.cpp
|
4af85b2328d432960371efeb092a70a8d9c25227 |
|
15-Aug-2009 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Allow double defs in the machine code verifier after the addPreRegAlloc passes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79095 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LLVMTargetMachine.cpp
|
789457847002f5289dbbc5cfce9d68c72e00bed1 |
|
14-Aug-2009 |
Daniel Dunbar <daniel@zuster.org> |
TargetRegistry: Change AsmPrinter constructor to be typed as returning an AsmPrinter instance (instead of just a FunctionPass) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78962 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LLVMTargetMachine.cpp
|
67d894ea64bc52245abf3f2ba89122a749d99c53 |
|
13-Aug-2009 |
Daniel Dunbar <daniel@zuster.org> |
TargetRegistry: Reorganize AsmPrinter construction so that clients pass in the TargetAsmInfo. This eliminates a dependency on TargetMachine.h from TargetRegistry.h, which technically was a layering violation. - Clients probably can only sensibly pass in the same TargetAsmInfo as the TargetMachine has, but there are only limited clients of this API. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78928 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LLVMTargetMachine.cpp
|
a7ac47cee1a0b3f4c798ecaa22ecf9d1be9c07e6 |
|
12-Aug-2009 |
Chris Lattner <sabre@nondot.org> |
Change TargetAsmInfo to be constructed via TargetRegistry from a Target+Triple pair instead of from a virtual method on TargetMachine. This cuts the final ties of TargetAsmInfo to TargetMachine, meaning that MC can now use TargetAsmInfo. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78802 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LLVMTargetMachine.cpp
|
ffef8acc3e3398bdd04e947c7949befdd52faf86 |
|
11-Aug-2009 |
Dan Gohman <gohman@apple.com> |
Tidy #includes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78677 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LLVMTargetMachine.cpp
|
1b747ad8a0694b86e8d98a8b9a05ddfe74ec0cd3 |
|
11-Aug-2009 |
Jim Grosbach <grosbach@apple.com> |
SjLj based exception handling unwinding support. This patch is nasty, brutish and short. Well, it's kinda short. Definitely nasty and brutish. The front-end generates the register/unregister calls into the SjLj runtime, call-site indices and landing pad dispatch. The back end fills in the LSDA with the call-site information provided by the front end. Catch blocks are not yet implemented. Built on Darwin and verified no llvm-core "make check" regressions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78625 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LLVMTargetMachine.cpp
|
6248fa45299a9e54aac84b3296c02c44ddec84e8 |
|
05-Aug-2009 |
Evan Cheng <evan.cheng@apple.com> |
Disable stack coloring with register for now. It's not able to set kill markers. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78179 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LLVMTargetMachine.cpp
|
ad2afc2a421a0e41603d5eee412d4d8c77e9bc1c |
|
31-Jul-2009 |
Dan Gohman <gohman@apple.com> |
Reapply r77654 with a fix: MachineFunctionPass's getAnalysisUsage shouldn't do AU.setPreservesCFG(), because even though CodeGen passes don't modify the LLVM IR CFG, they may modify the MachineFunction CFG, and passes like MachineLoop are registered with isCFGOnly set to true. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77691 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LLVMTargetMachine.cpp
|
c5b19b21d84814d19692a6bbea11fbd135f4b094 |
|
31-Jul-2009 |
Daniel Dunbar <daniel@zuster.org> |
Revert r77654, it appears to be causing llvm-gcc bootstrap failures, and many failures when building assorted projects with clang. --- Reverse-merging r77654 into '.': U include/llvm/CodeGen/Passes.h U include/llvm/CodeGen/MachineFunctionPass.h U include/llvm/CodeGen/MachineFunction.h U include/llvm/CodeGen/LazyLiveness.h U include/llvm/CodeGen/SelectionDAGISel.h D include/llvm/CodeGen/MachineFunctionAnalysis.h U include/llvm/Function.h U lib/Target/CellSPU/SPUISelDAGToDAG.cpp U lib/Target/PowerPC/PPCISelDAGToDAG.cpp U lib/CodeGen/LLVMTargetMachine.cpp U lib/CodeGen/MachineVerifier.cpp U lib/CodeGen/MachineFunction.cpp U lib/CodeGen/PrologEpilogInserter.cpp U lib/CodeGen/MachineLoopInfo.cpp U lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp D lib/CodeGen/MachineFunctionAnalysis.cpp D lib/CodeGen/MachineFunctionPass.cpp U lib/CodeGen/LiveVariables.cpp git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77661 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LLVMTargetMachine.cpp
|
933c762371fe8cc6e2ef5d00d6866f4924852fed |
|
31-Jul-2009 |
Dan Gohman <gohman@apple.com> |
Manage MachineFunctions with an analysis Pass instead of the Annotable mechanism. To support this, make MachineFunctionPass a little more complete. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77654 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LLVMTargetMachine.cpp
|
36129dba4f4134bc9cc83e3ea830e215754b1baf |
|
16-Jul-2009 |
Daniel Dunbar <daniel@zuster.org> |
We don't need to use llvm_report_error, this interface can deal with errors (although we don't get a very good error message). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75864 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LLVMTargetMachine.cpp
|
6d823cd39d8d16571682cd1bb4cbf2ecb4815d8e |
|
16-Jul-2009 |
Daniel Dunbar <daniel@zuster.org> |
Add missing includes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75862 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LLVMTargetMachine.cpp
|
5d77cad60bd82dfa2d00f78e26443d667922efbf |
|
16-Jul-2009 |
Daniel Dunbar <daniel@zuster.org> |
Lift addAssemblyEmitter into LLVMTargetMachine. - No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75859 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LLVMTargetMachine.cpp
|
cfe9a605eea542d91e3db74289b69b7e317d90a6 |
|
16-Jul-2009 |
Daniel Dunbar <daniel@zuster.org> |
Lift DumpAsm / -print-emitted-asm functionality into LLVMTargetMachine. - No intended functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75848 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LLVMTargetMachine.cpp
|
71847813bc419f7a0667468136a07429c6d9f164 |
|
14-Jul-2009 |
David Greene <greened@obbligato.org> |
Have asm printers use formatted_raw_ostream directly to avoid a dynamic_cast<>. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75670 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LLVMTargetMachine.cpp
|
8799dbe5b7be2e959047caf88ce97a04a3526856 |
|
14-Jul-2009 |
Evan Cheng <evan.cheng@apple.com> |
Revert an accidental commit. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75553 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LLVMTargetMachine.cpp
|
ac57e6e498abccb117e0d61c2fa0f733845e50cb |
|
06-Jul-2009 |
Bruno Cardoso Lopes <bruno.cardoso@gmail.com> |
Add the Object Code Emitter class. Original patch by Aaron Gray, I did some cleanup, removed some #includes and moved Object Code Emitter out-of-line. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74813 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LLVMTargetMachine.cpp
|
e7d6df73530a98a5cc5f69ddfd17073b464caa57 |
|
13-Jun-2009 |
Evan Cheng <evan.cheng@apple.com> |
Add a ARM specific pre-allocation pass that re-schedule loads / stores from consecutive addresses togther. This makes it easier for the post-allocation pass to form ldm / stm. This is step 1. We are still missing a lot of ldm / stm opportunities because of register allocation are not done in the desired order. More enhancements coming. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@73291 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LLVMTargetMachine.cpp
|
a3f99f90338d89354384ca25f53ca4450a1a9d18 |
|
30-May-2009 |
Bruno Cardoso Lopes <bruno.cardoso@gmail.com> |
First patch in the direction of splitting MachineCodeEmitter in two subclasses: JITCodeEmitter and ObjectCodeEmitter. No functional changes yet. Patch by Aaron Gray git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72631 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LLVMTargetMachine.cpp
|
b0f1e1780c736c62fb99e5824825d2a60a53b53b |
|
22-May-2009 |
Duncan Sands <baldrick@free.fr> |
Add a new codegen pass that normalizes dwarf exception handling code in preparation for code generation. The main thing it does is handle the case when eh.exception calls (and, in a future patch, eh.selector calls) are far away from landing pads. Right now in practice you only find eh.exception calls close to landing pads: either in a landing pad (the common case) or in a landing pad successor, due to loop passes shifting them about. However future exception handling improvements will result in calls far from landing pads: (1) Inlining of rewinds. Consider the following case: In function @f: ... invoke @g to label %normal unwind label %unwinds ... unwinds: %ex = call i8* @llvm.eh.exception() ... In function @g: ... invoke @something to label %continue unwind label %handler ... handler: %ex = call i8* @llvm.eh.exception() ... perform cleanups ... "rethrow exception" Now inline @g into @f. Currently this is turned into: In function @f: ... invoke @something to label %continue unwind label %handler ... handler: %ex = call i8* @llvm.eh.exception() ... perform cleanups ... invoke "rethrow exception" to label %normal unwind label %unwinds unwinds: %ex = call i8* @llvm.eh.exception() ... However we would like to simplify invoke of "rethrow exception" into a branch to the %unwinds label. Then %unwinds is no longer a landing pad, and the eh.exception call there is then far away from any landing pads. (2) Using the unwind instruction for cleanups. It would be nice to have codegen handle the following case: invoke @something to label %continue unwind label %run_cleanups ... handler: ... perform cleanups ... unwind This requires turning "unwind" into a library call, which necessarily takes a pointer to the exception as an argument (this patch also does this unwind lowering). But that means you are using eh.exception again far from a landing pad. (3) Bugpoint simplifications. When bugpoint is simplifying exception handling code it often generates eh.exception calls far from a landing pad, which then causes codegen to assert. Bugpoint then latches on to this assertion and loses sight of the original problem. Note that it is currently rare for this pass to actually do anything. And in fact it normally shouldn't do anything at all given the code coming out of llvm-gcc! But it does fire a few times in the testsuite. As far as I can see this is almost always due to the LoopStrengthReduce codegen pass introducing pointless loop preheader blocks which are landing pads and only contain a branch to another block. This other block contains an eh.exception call. So probably by tweaking LoopStrengthReduce a bit this can be avoided. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72276 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LLVMTargetMachine.cpp
|
48872e0d84b47769be6c13ae98bf88468b59d921 |
|
16-May-2009 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Pass to verify generated machine code. The following is checked: * Operand counts: All explicit operands must be present. * Register classes: All physical and virtual register operands must be compatible with the register class required by the instruction descriptor. * Register live intervals: Registers must be defined only once, and must be defined before use. The machine code verifier is enabled with the command-line option '-verify-machineinstrs', or by defining the environment variable LLVM_VERIFY_MACHINEINSTRS to the name of a file that will receive all the verifier errors. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@71918 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LLVMTargetMachine.cpp
|
1ea7327845bcd0996425c9892730bf9b1f123f20 |
|
12-May-2009 |
Evan Cheng <evan.cheng@apple.com> |
Fixed a stack slot coloring with reg bug: do not update implicit use / def when doing forward / backward propagation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@71574 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LLVMTargetMachine.cpp
|
bbf1db72133e9cf986e4da6260736335533067db |
|
07-May-2009 |
Evan Cheng <evan.cheng@apple.com> |
Rename "loop aligner" pass to "code placement optimization" pass. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@71150 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LLVMTargetMachine.cpp
|
2c1d7726f25b6b219a1518b411351b99d25c1a02 |
|
07-May-2009 |
Bill Wendling <isanbard@gmail.com> |
Just turn aggressive stack coloring off at -O3. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@71140 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LLVMTargetMachine.cpp
|
d0c1f9c932e9da29ea4c6e9a863f1567c6e61477 |
|
07-May-2009 |
Bill Wendling <isanbard@gmail.com> |
Temporarily revert r71010. It was causing massive failures during self-hosting. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@71138 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LLVMTargetMachine.cpp
|
f9a9b51429b284ad85f1162592a10918c5665733 |
|
05-May-2009 |
Evan Cheng <evan.cheng@apple.com> |
Enable stack coloring with regs at -O3. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@71010 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LLVMTargetMachine.cpp
|
98a366d547772010e94609e4584489b3e5ce0043 |
|
30-Apr-2009 |
Bill Wendling <isanbard@gmail.com> |
Instead of passing in an unsigned value for the optimization level, use an enum, which better identifies what the optimization is doing. And is more flexible for future uses. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@70440 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LLVMTargetMachine.cpp
|
be8cc2a3dedeb7685f07e68cdc4b9502eb97eb2b |
|
29-Apr-2009 |
Bill Wendling <isanbard@gmail.com> |
Second attempt: Massive check in. This changes the "-fast" flag to "-O#" in llc. If you want to use the old behavior, the flag is -O0. This change allows for finer-grained control over which optimizations are run at different -O levels. Most of this work was pretty mechanical. The majority of the fixes came from verifying that a "fast" variable wasn't used anymore. The JIT still uses a "Fast" flag. I'll change the JIT with a follow-up patch. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@70343 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LLVMTargetMachine.cpp
|
c69d56f1154342a57c9bdd4c17a10333e3520127 |
|
28-Apr-2009 |
Bill Wendling <isanbard@gmail.com> |
r70270 isn't ready yet. Back this out. Sorry for the noise. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@70275 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LLVMTargetMachine.cpp
|
2e9d5f912a9841d3685ba0241abe1131943fed29 |
|
28-Apr-2009 |
Bill Wendling <isanbard@gmail.com> |
Massive check in. This changes the "-fast" flag to "-O#" in llc. If you want to use the old behavior, the flag is -O0. This change allows for finer-grained control over which optimizations are run at different -O levels. Most of this work was pretty mechanical. The majority of the fixes came from verifying that a "fast" variable wasn't used anymore. The JIT still uses a "Fast" flag. I'm not 100% sure if it's necessary to change it there... git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@70270 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LLVMTargetMachine.cpp
|
42bf74be1402df7409efbea089310d4c276fde37 |
|
25-Mar-2009 |
Evan Cheng <evan.cheng@apple.com> |
CodeGen still defaults to non-verbose asm, but llc now overrides it and default to verbose. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@67668 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LLVMTargetMachine.cpp
|
8f0d99e463a2dcb5a40d14f0481a0e322bcf79e4 |
|
09-Feb-2009 |
Evan Cheng <evan.cheng@apple.com> |
Re-enable machine sinking pass now that the coalescer bugs and the AnalyzeBrnach bug are fixed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@64126 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LLVMTargetMachine.cpp
|
7f51fd3ea93232658388757fcc8121f14f4454bc |
|
08-Feb-2009 |
Bill Wendling <isanbard@gmail.com> |
Revert r63999. It was breaking self-hosting builds. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@64062 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LLVMTargetMachine.cpp
|
c963b638c783beb2252e8a6c580c2d15c36c9be9 |
|
07-Feb-2009 |
Evan Cheng <evan.cheng@apple.com> |
Enable machine sinking pass in non-fast mode. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63999 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LLVMTargetMachine.cpp
|
c5d1a4ffd96528b49a9e34e06706f1499cd0fe80 |
|
05-Feb-2009 |
Evan Cheng <evan.cheng@apple.com> |
Turn on machine LICM in non-fast mode. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63855 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LLVMTargetMachine.cpp
|
23b0d490cdf27b2cba7b497aceeb5c79b0d0c9fe |
|
18-Dec-2008 |
Dan Gohman <gohman@apple.com> |
Move post-RA scheduling before branch folding for now, because branch folding's tail merging doesn't currently preserve liveness information which post-RA scheduling requires. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61183 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LLVMTargetMachine.cpp
|
cb72dd6776d49b21711977bde21b23c92cff7544 |
|
24-Nov-2008 |
Dan Gohman <gohman@apple.com> |
Run post-RA scheduling after branch folding, as it tends to obscure tail-merging opportunities. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59967 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LLVMTargetMachine.cpp
|
5ce0973f7f4d149f986d16d1a1f79b131fd70423 |
|
20-Nov-2008 |
Dan Gohman <gohman@apple.com> |
Add another machine-code printing pass when post-pass scheduling is run. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59746 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LLVMTargetMachine.cpp
|
e9e6bdf27fca46dc9eca2ebdf73e03747d1859ab |
|
13-Nov-2008 |
Bill Wendling <isanbard@gmail.com> |
Implement stack protectors as function attributes: "ssp" and "sspreq". git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59202 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LLVMTargetMachine.cpp
|
80a320d974dae7666157e80b141d7ff97e5f6544 |
|
04-Nov-2008 |
Bill Wendling <isanbard@gmail.com> |
Update in response to feedback from Chris: - Use enums instead of magic numbers. - Rework algorithm to use the bytes size from the target to determine when to emit stack protectors. - Get rid of "propolice" in any comments. - Renamed an option to its expanded form. - Other miscellanenous changes. More changes will come after this. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58723 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LLVMTargetMachine.cpp
|
2b58ce5ab4e22e796303d68fb246d4031cb5d4ca |
|
04-Nov-2008 |
Bill Wendling <isanbard@gmail.com> |
Initial checkin for stack protectors. Here's what it does: * The prologue is modified to read the __stack_chk_guard global and insert it onto the stack. * The epilogue is modified to read the stored guard from the stack and compare it to the original __stack_chk_guard value. If they differ, then the __stack_chk_fail() function is called. * The stack protector needs to be first on the stack (after the parameters) to catch any stack-smashing activities. Front-end support will follow after a round of beta testing. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58673 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LLVMTargetMachine.cpp
|
71b7f646de0d9e74198534d4a7b6059e6031ed59 |
|
25-Oct-2008 |
Dan Gohman <gohman@apple.com> |
Move the code that adds the DeadMachineInstructionElimPass from target-independent code to target-specific code. This prevents it from running on targets that aren't using fast-isel. In addition to saving compile time, this addresses the problem that not all targets are prepared for it. In order to use this pass, all instructions must declare all their fixed uses and defs of physical registers. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58144 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LLVMTargetMachine.cpp
|
3b0da26e202cbbeb22508231f4278bda8e995391 |
|
22-Oct-2008 |
Daniel Dunbar <daniel@zuster.org> |
Move Print*Pass to use raw_ostream. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57946 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LLVMTargetMachine.cpp
|
f4db3a51c7d806f7dcef5d9625e7cdf7f122dca9 |
|
22-Oct-2008 |
Daniel Dunbar <daniel@zuster.org> |
Privatize PrintModulePass and PrintFunctionPass and add createPrintModulePass and createPrintFunctionPass. - So clients who compile w/o RTTI can use them. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57933 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LLVMTargetMachine.cpp
|
eb0d6abee36c274cf081948795f4675d8f33fc6f |
|
08-Oct-2008 |
Dan Gohman <gohman@apple.com> |
Remove -disable-fast-isel. Use cl::boolOrDefault with -fast-isel instead. So now: -fast-isel or -fast-isel=true enable fast-isel, and -fast-isel=false disables it. Fast-isel is also on by default with -fast, and off by default otherwise. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57270 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LLVMTargetMachine.cpp
|
4ae641f4d12c60ee1aaca5e42b6de231c6a02c40 |
|
02-Oct-2008 |
Devang Patel <dpatel@apple.com> |
Remove OptimizeForSize global. Use function attribute optsize. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56937 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LLVMTargetMachine.cpp
|
dc756858f92a397ed30362ba8251fec56479735f |
|
01-Oct-2008 |
Dan Gohman <gohman@apple.com> |
Enable FastISel by default (on x86 and x86-64) with the -fast option. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56930 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LLVMTargetMachine.cpp
|
2c4bf119be8aa05cdc3dc88c57006353f07f0d2c |
|
25-Sep-2008 |
Dan Gohman <gohman@apple.com> |
Enable DeadMachineInstructionElim when Fast-ISel is enabled. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56604 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LLVMTargetMachine.cpp
|
02dae4ba06a05d28b24b3c1b39d54de751271c95 |
|
25-Sep-2008 |
Dan Gohman <gohman@apple.com> |
Refactor the code that adds standard LLVM codegen passes into a separate function, eliminating duplication between the add-passes-for-file and add-passes-for-machine-code code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56599 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LLVMTargetMachine.cpp
|
cb3718832375a581c5ea23f15918f3ea447a446c |
|
21-Aug-2008 |
Owen Anderson <resistor@mac.com> |
Use raw_ostream throughout the AsmPrinter. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55092 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LLVMTargetMachine.cpp
|
5eca075b74d62c621b160aa216b4cd50829a2cc7 |
|
17-Aug-2008 |
Gordon Henriksen <gordonhenriksen@mac.com> |
Rename some GC classes so that their roll will hopefully be clearer. In particular, Collector was confusing to implementors. Several thought that this compile-time class was the place to implement their runtime GC heap. Of course, it doesn't even exist at runtime. Specifically, the renames are: Collector -> GCStrategy CollectorMetadata -> GCFunctionInfo CollectorModuleMetadata -> GCModuleInfo CollectorRegistry -> GCRegistry Function::getCollector -> getGC (setGC, hasGC, clearGC) Several accessors and nested types have also been renamed to be consistent. These changes should be obvious. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54899 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LLVMTargetMachine.cpp
|
5a29c9eed157af51a8d338b5a225b146881819e8 |
|
17-Aug-2008 |
Gordon Henriksen <gordonhenriksen@mac.com> |
Factor GC metadata table assembly generation out of Collector in preparation for splitting AsmPrinter into its own library. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54881 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LLVMTargetMachine.cpp
|
9ef4c5302eb547936f6586ece880f31104d2f801 |
|
01-Jul-2008 |
Evan Cheng <evan.cheng@apple.com> |
Don't run stack slot coloring if -fast. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52933 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LLVMTargetMachine.cpp
|
877333b99dd830c3e8bb7eaa1345ea942d29fc06 |
|
06-Jun-2008 |
Evan Cheng <evan.cheng@apple.com> |
Enable stack coloring by default. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52057 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LLVMTargetMachine.cpp
|
75bb734f1d4d50ebb377bd030e2ee002a09be673 |
|
04-Jun-2008 |
Evan Cheng <evan.cheng@apple.com> |
Oops. Should not be enabled by default. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51953 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LLVMTargetMachine.cpp
|
3f32d65912b4da23793dab618d981be2ce11c331 |
|
04-Jun-2008 |
Evan Cheng <evan.cheng@apple.com> |
Add a stack slot coloring pass. Not yet enabled. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51934 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LLVMTargetMachine.cpp
|
f73ff3aaf64627fb71753032904ee3ab2a7add28 |
|
03-Jun-2008 |
Evan Cheng <evan.cheng@apple.com> |
Do not run loop-aligner at -fast (e.g. -O0). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51898 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LLVMTargetMachine.cpp
|
7645e574d2d50b1a737f91013fba75af61426fcf |
|
31-May-2008 |
Evan Cheng <evan.cheng@apple.com> |
Fix indentation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51793 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LLVMTargetMachine.cpp
|
b013f5094c3bdb36472da996d63d5c0f75b6d4d3 |
|
23-Apr-2008 |
Anton Korobeynikov <asl@math.spbu.ru> |
Unbreak JIT git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50173 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LLVMTargetMachine.cpp
|
769b481e9f57b9fa2acf6c5fe0a94877520fcec3 |
|
23-Apr-2008 |
Anton Korobeynikov <asl@math.spbu.ru> |
Add facility for pre-RA passes git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50165 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LLVMTargetMachine.cpp
|
1532f3ddd77c362dd5f613af06b4de636e3c5b0e |
|
02-Apr-2008 |
Dale Johannesen <dalej@apple.com> |
Recommitting EH patch; this should answer most of the review feedback. -enable-eh is still accepted but doesn't do anything. EH intrinsics use Dwarf EH if the target supports that, and are handled by LowerInvoke otherwise. The separation of the EH table and frame move data is, I think, logically figured out, but either one still causes full EH info to be generated (not sure how to split the metadata correctly). MachineModuleInfo::needsFrameInfo is no longer used and is removed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49064 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LLVMTargetMachine.cpp
|
b6d5b1439047609c050576f3dc52b722e76bd30b |
|
01-Apr-2008 |
Dale Johannesen <dalej@apple.com> |
Revert 49006 for the moment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49046 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LLVMTargetMachine.cpp
|
1544e4713be68edcf042de5aed7265dff7169d9d |
|
01-Apr-2008 |
Dale Johannesen <dalej@apple.com> |
Emit exception handling info for functions which are not marked nounwind, or for all functions when -enable-eh is set, provided the target supports Dwarf EH. llvm-gcc generates nounwind in the right places; other FEs will need to do so also. Given such a FE, -enable-eh should no longer be needed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49006 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LLVMTargetMachine.cpp
|
62c7b8c3713f7178991fac299abcb04e3818ca65 |
|
25-Mar-2008 |
Dan Gohman <gohman@apple.com> |
Avoid outputing spaces at the ends of lines. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48797 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LLVMTargetMachine.cpp
|
73ee9c3fb1f15cbfb2f91a4f645834c94a76a949 |
|
25-Mar-2008 |
Devang Patel <dpatel@apple.com> |
Do not align loops if optimizing for size. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48794 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LLVMTargetMachine.cpp
|
bfae83139dcb4fffd50b939e1b1224b0126f04d4 |
|
11-Mar-2008 |
Dan Gohman <gohman@apple.com> |
Use PassManagerBase instead of FunctionPassManager for functions that merely add passes. This allows them to be used with either FunctionPassManager or PassManager, or even with a custom new kind of pass manager. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48256 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LLVMTargetMachine.cpp
|
d703ed6aed98c8156829399efbafb13a3cca0b69 |
|
29-Feb-2008 |
Evan Cheng <evan.cheng@apple.com> |
Added option -align-loops=<true/false> to disable loop aligner pass. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47736 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LLVMTargetMachine.cpp
|
afe6c2b001a924cd74bd0aacfed5984d9af004b0 |
|
13-Feb-2008 |
Nicolas Geoffray <nicolas.geoffray@lip6.fr> |
Enable exception handling int JIT git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47079 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LLVMTargetMachine.cpp
|
459525df1e003597077197b5f802bd5d9cd7d94c |
|
14-Jan-2008 |
Chris Lattner <sabre@nondot.org> |
don't create the post-ra scheduler unless it is enabled. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45972 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LLVMTargetMachine.cpp
|
93f96d00bf10299246ea726956ce84dcb4b9a59e |
|
07-Jan-2008 |
Gordon Henriksen <gordonhenriksen@mac.com> |
Ammending r45669 with a missing file. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45671 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LLVMTargetMachine.cpp
|
3c42f1211874665e8ea6eea55a45024b557afa61 |
|
05-Jan-2008 |
Chris Lattner <sabre@nondot.org> |
allow sinking to be enabled for the jit git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45624 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LLVMTargetMachine.cpp
|
cc8f603f531c906782e4966107ae29667eb6632c |
|
04-Jan-2008 |
Bill Wendling <isanbard@gmail.com> |
Move option to enable machine LICM into LLVMTargetMachine.cpp. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45572 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LLVMTargetMachine.cpp
|
c4ce73f666e7ab9a270982a575101df8aa6160d3 |
|
04-Jan-2008 |
Chris Lattner <sabre@nondot.org> |
Add a really quick hack at a machine code sinking pass, enabled with --enable-sinking. It is missing validity checks, so it is known broken. However, it is powerful enough to compile this contrived code: void test1(int C, double A, double B, double *P) { double Tmp = A*A+B*B; *P = C ? Tmp : A; } into: _test1: movsd 8(%esp), %xmm0 cmpl $0, 4(%esp) je LBB1_2 # entry LBB1_1: # entry movsd 16(%esp), %xmm1 mulsd %xmm1, %xmm1 mulsd %xmm0, %xmm0 addsd %xmm1, %xmm0 LBB1_2: # entry movl 24(%esp), %eax movsd %xmm0, (%eax) ret instead of: _test1: movsd 16(%esp), %xmm0 mulsd %xmm0, %xmm0 movsd 8(%esp), %xmm1 movapd %xmm1, %xmm2 mulsd %xmm2, %xmm2 addsd %xmm0, %xmm2 cmpl $0, 4(%esp) je LBB1_2 # entry LBB1_1: # entry movapd %xmm2, %xmm1 LBB1_2: # entry movl 24(%esp), %eax movsd %xmm1, (%eax) ret woo. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45570 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LLVMTargetMachine.cpp
|
4ee451de366474b9c228b4e5fa573795a715216d |
|
29-Dec-2007 |
Chris Lattner <sabre@nondot.org> |
Remove attribution from file headers, per discussion on llvmdev. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45418 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LLVMTargetMachine.cpp
|
0f940c95d4506f8d04fa2aeda8a79cadb3105fe3 |
|
07-Dec-2007 |
Bill Wendling <isanbard@gmail.com> |
Initial commit of the machine code LICM pass. It successfully hoists this: _foo: li r2, 0 LBB1_1: ; bb li r5, 0 stw r5, 0(r3) addi r2, r2, 1 addi r3, r3, 4 cmplw cr0, r2, r4 bne cr0, LBB1_1 ; bb LBB1_2: ; return blr to: _foo: li r2, 0 li r5, 0 LBB1_1: ; bb stw r5, 0(r3) addi r2, r2, 1 addi r3, r3, 4 cmplw cr0, r2, r4 bne cr0, LBB1_1 ; bb LBB1_2: ; return blr ZOMG!! :-) Moar to come... git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44687 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LLVMTargetMachine.cpp
|
ada779fb11eb411536aa8219a176ca0ce4d58fd1 |
|
27-Jul-2007 |
Christopher Lamb <christopher.lamb@gmail.com> |
Move subreg lowering pass to be right after regalloc, per feedback. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40548 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LLVMTargetMachine.cpp
|
bab2474b64e81be0ed4fc35d16cdfac65f283361 |
|
26-Jul-2007 |
Christopher Lamb <christopher.lamb@gmail.com> |
Add a MachineFunction pass, which runs post register allocation, that turns subreg insert/extract instruction into register copies. This ensures correct code gen if the coalescer isn't able to remove all subreg instructions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40521 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LLVMTargetMachine.cpp
|
8bd6035750f1b290832a3b1c90766d9b45ed8d6b |
|
20-Jul-2007 |
Evan Cheng <evan.cheng@apple.com> |
Added -print-emitted-asm to print out JIT generated asm to cerr. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40123 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LLVMTargetMachine.cpp
|
72f159640382a16e036b63dcb9c0b427e6d5dc0a |
|
13-Jul-2007 |
Dale Johannesen <dalej@apple.com> |
Modify previous patch per review comments. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@39817 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LLVMTargetMachine.cpp
|
e7e7d0d7e39d0c7c659d26b97e8081fce0fcd749 |
|
13-Jul-2007 |
Dale Johannesen <dalej@apple.com> |
Skeleton of post-RA scheduler; doesn't do anything yet. Change name of -sched option and DEBUG_TYPE to pre-RA-sched; adjust testcases. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@39816 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LLVMTargetMachine.cpp
|
c3751600b7a5dee550c5e50cb83065630759467f |
|
11-Jul-2007 |
Duncan Sands <baldrick@free.fr> |
Exception handling has been implemented. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@39732 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LLVMTargetMachine.cpp
|
85ef2546303fabe32de3f2519a978fa2a7fd5958 |
|
19-Jun-2007 |
Chris Lattner <sabre@nondot.org> |
document and hide two options. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37651 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LLVMTargetMachine.cpp
|
e6e435498c0e35d98644f868886d39c4665bb83a |
|
22-May-2007 |
Dale Johannesen <dalej@apple.com> |
name change requested by review of previous patch git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37289 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LLVMTargetMachine.cpp
|
81da02b553b86868637f27b89c6e919c31ed5b51 |
|
22-May-2007 |
Dale Johannesen <dalej@apple.com> |
Make tail merging the default, except on powerPC. There was no prior art for a target-dependent default with a command-line override; this way should be generally usable. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37285 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LLVMTargetMachine.cpp
|
c8d288f8fa9e46199a29e1954550c980f184bd1c |
|
31-Mar-2007 |
Chris Lattner <sabre@nondot.org> |
move a bunch of code out of the sdisel pass into its own opt pass "codegenprepare". git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35529 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LLVMTargetMachine.cpp
|
31442f9dc5512b6a29cdb332b12ae09a1c9e8176 |
|
31-Mar-2007 |
Chris Lattner <sabre@nondot.org> |
Add a -print-lsr-output option to LLC, to print the output of the LSR pass. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35522 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LLVMTargetMachine.cpp
|
0f54dcbf07c69e41ecaa6b4fbf0d94956d8e9ff5 |
|
06-Mar-2007 |
Devang Patel <dpatel@apple.com> |
Now LoopStrengthReduce is a LoopPass. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34984 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LLVMTargetMachine.cpp
|
a4e7cd947e378aa3ffe633be227138d8f859c9e3 |
|
22-Feb-2007 |
Jim Laskey <jlaskey@mac.com> |
Use exception flag. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34496 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LLVMTargetMachine.cpp
|
04523eab6bbc5d55a6e3f3296ddd583c8ad5ebb1 |
|
08-Feb-2007 |
Bill Wendling <isanbard@gmail.com> |
Split the addPassesToEmitFile method up into two. This is so that we can do some common stuff, then on our own add an object file writer (by calling a concrete function), and then do some finishing stuff, if need be. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34032 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LLVMTargetMachine.cpp
|
bcd2498f4f1682dbdc41452add5b9bc72cbd6b3f |
|
07-Dec-2006 |
Bill Wendling <isanbard@gmail.com> |
Removed more <iostream> includes git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32321 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LLVMTargetMachine.cpp
|
e01eaa09c6be30497fde9bc4a8776752f27f74b6 |
|
16-Nov-2006 |
Chris Lattner <sabre@nondot.org> |
enable the branch folding pass for the JIT. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31777 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LLVMTargetMachine.cpp
|
9d4209fb82cab74bae76511e3f21ef1c24ec948a |
|
07-Nov-2006 |
Jim Laskey <jlaskey@mac.com> |
1. Add a pass to fold debug label instructions so a debug info client can detect empty ranges. 2. Reorg how MachineDebugInfo maintains changes to debug labels. 3. Have dwarf writer use debug label info to simplify scopes and source line coorespondence. 4. Revert the merging of compile units until I can get the bugs ironed out. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31507 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LLVMTargetMachine.cpp
|
62d07d6acef9f5fd807b98a509d164bd3d6f0187 |
|
24-Oct-2006 |
Jim Laskey <jlaskey@mac.com> |
Don't do dead block elimination in fast mode. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31155 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LLVMTargetMachine.cpp
|
4a84ad7a2bfd1795357776164e3bf80a2600d924 |
|
13-Oct-2006 |
Chris Lattner <sabre@nondot.org> |
add the branch folding pass as a late cleanup pass for all targets. For now it just deletes empty MBB's. Soon it will do more :) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30941 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LLVMTargetMachine.cpp
|
2a0013f59fb3b23010c0509fab8bf509eb30fb36 |
|
04-Sep-2006 |
Duraid Madina <duraid@octopus.com.au> |
add setJumpBufSize() and setJumpBufAlignment() to target-lowering. Call these from your backend to enjoy setjmp/longjmp goodness, see lib/Target/IA64/IA64ISelLowering.cpp for an example git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30095 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LLVMTargetMachine.cpp
|
47877050e7ea02c3514497aba54eef1d4cee8452 |
|
04-Sep-2006 |
Chris Lattner <sabre@nondot.org> |
new file git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30082 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LLVMTargetMachine.cpp
|