aboutsummaryrefslogtreecommitdiffstats
path: root/win32/CodeGen
Commit message (Collapse)AuthorAgeFilesLines
* Add a new codegen pass that normalizes dwarf exception handlingDuncan Sands2009-05-221-0/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* Update VS project files.Steve Naroff2009-01-261-0/+20
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63017 91177308-0d34-0410-b5e6-96231b3b80d8
* Handful of fixes to the VC project files.Steve Naroff2009-01-221-8/+8
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62807 91177308-0d34-0410-b5e6-96231b3b80d8
* Update VC++ projects.Steve Naroff2008-11-061-0/+4
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58798 91177308-0d34-0410-b5e6-96231b3b80d8
* Add file to VC++ project.Steve Naroff2008-10-241-13/+17
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58060 91177308-0d34-0410-b5e6-96231b3b80d8
* update win32 project file, patch provided by OvermindDL1 on llvmdev.Chris Lattner2008-10-111-0/+12
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57386 91177308-0d34-0410-b5e6-96231b3b80d8
* Update VS projects.Cedric Venet2008-09-201-1/+9
| | | | | | Change some class to struct for coherency. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56389 91177308-0d34-0410-b5e6-96231b3b80d8
* Update VC++ project files.Argyrios Kyrtzidis2008-09-091-1/+13
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55985 91177308-0d34-0410-b5e6-96231b3b80d8
* Updating VC++ project.Cedric Venet2008-08-241-17/+17
| | | | | | Adding one include file and correct one declaration from class to struct in order to make llvm compile on VC2005. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55279 91177308-0d34-0410-b5e6-96231b3b80d8
* Update VC++ project.Gordon Henriksen2008-08-171-17/+13
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54905 91177308-0d34-0410-b5e6-96231b3b80d8
* Make it compile on VC2005:Cedric Venet2008-08-171-12/+24
| | | | | | | | - update VC projects. - Add an overload to llvm::Stream for <<, since std::hex and std::dec have type std::ios_base& (*)(std::ios_base&) in VC++. (templating the function don't work, due to ambiguities) - add ../ on several include in X86/AsmPrinter/ git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54898 91177308-0d34-0410-b5e6-96231b3b80d8
* update VS project.Cedric Venet2008-08-091-0/+8
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54580 91177308-0d34-0410-b5e6-96231b3b80d8
* This replaces all $(SolutionDir) macros with $(ProjectDir)..\ Chris Lattner2008-07-141-4/+4
| | | | | | | Patch by Nicolas Capens! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53571 91177308-0d34-0410-b5e6-96231b3b80d8
* Remove deleted files from VC++ project.Cedric Venet2008-07-131-8/+0
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53521 91177308-0d34-0410-b5e6-96231b3b80d8
* Add an include file needed for VS.Cedric Venet2008-06-271-0/+8
| | | | | | | Add two new file to codegen project (VS). This unbreak the build for VS. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52831 91177308-0d34-0410-b5e6-96231b3b80d8
* Updated VS build system. Patch provided by Cedric Venet:Ted Kremenek2008-06-201-9/+5
| | | | | | | | http://lists.cs.uiuc.edu/pipermail/llvmdev/2008-June/015446.html git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52564 91177308-0d34-0410-b5e6-96231b3b80d8
* "Just a small update for the project files for adding a missing preprocessorChris Lattner2008-06-201-2/+2
| | | | | | | | | | definition for VS2005 (without SP1). It suppress the (bogus) M$ deprecated warning." Patch by Cédric Venet! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52530 91177308-0d34-0410-b5e6-96231b3b80d8
* Update VC project files, patch by Cédric Venet!Chris Lattner2008-06-071-0/+8
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52077 91177308-0d34-0410-b5e6-96231b3b80d8
* Revert 51067 check-in for now.Devang Patel2008-05-151-2/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51155 91177308-0d34-0410-b5e6-96231b3b80d8
* Update the Win32 project files, patch by Razvan Aciu!Chris Lattner2008-05-131-1/+2
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51067 91177308-0d34-0410-b5e6-96231b3b80d8
* Updating win32 VStudio project files with new file references and removing ↵Chuck Rose III2008-03-271-0/+12
| | | | | | dead references. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48849 91177308-0d34-0410-b5e6-96231b3b80d8
* Add files to windows project files. Also include <algorithm> explicitly so ↵Chuck Rose III2008-01-151-0/+16
| | | | | | that vstudio build works git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46013 91177308-0d34-0410-b5e6-96231b3b80d8
* Adding new files to win32 buildChuck Rose III2008-01-031-4/+12
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45545 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix PR1888, patch by Wilhansen Li.Chris Lattner2008-01-021-0/+4
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45501 91177308-0d34-0410-b5e6-96231b3b80d8
* Add StringPool + new CodeGen files to win32 buildChuck Rose III2007-12-101-0/+24
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44805 91177308-0d34-0410-b5e6-96231b3b80d8
* Adding MachineLoopInfo.h,.cpp and MachineLICP.cpp to VStudio buildChuck Rose III2007-12-081-0/+12
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44690 91177308-0d34-0410-b5e6-96231b3b80d8
* This change does a couple of things. First it gets the Visual Studio builds ↵Chuck Rose III2007-11-211-4/+147
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | working. I added the lexing files to the VStudio projects and removed the .l files from the VStudio projects. There was a problem with use of strtoll in TGLexer.cpp and Chris suggested switching to strtol, so that's included here. Additionally, this checkin adds minimal x64 builds to the VStudio builds. Build issues related to x64 in the windows specific files for DynamicLibrary.inc and Singals.inc are worked around, but not ultimately solved. Binaries used to be stored in ...\win32\{Debug|Release} but are now kept in ...\win32\bin\{win32|x64}\{Debug|Release} intermediate files will continue to be stored in the individual project directories under win32. Some names will likely change in the future to reflect that the vstudio projects are no longer 32-bit only, but I wanted to get things up and running today so kept away from bigger restructuring. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44260 91177308-0d34-0410-b5e6-96231b3b80d8
* Updated VC++ build systemHartmut Kaiser2007-11-121-4/+4
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44004 91177308-0d34-0410-b5e6-96231b3b80d8
* Adding some recently added files to the VStudio projectsChuck Rose III2007-11-091-0/+4
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43919 91177308-0d34-0410-b5e6-96231b3b80d8
* Updated VC++ build systemHartmut Kaiser2007-11-071-2/+6
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43837 91177308-0d34-0410-b5e6-96231b3b80d8
* Updated VC++ build systemHartmut Kaiser2007-11-021-0/+8
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43631 91177308-0d34-0410-b5e6-96231b3b80d8
* Updated VC++ build systemHartmut Kaiser2007-10-291-0/+4
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43479 91177308-0d34-0410-b5e6-96231b3b80d8
* Updated VC++ build system.Hartmut Kaiser2007-10-101-4/+28
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42835 91177308-0d34-0410-b5e6-96231b3b80d8
* Updates to the VStudio project files:Chuck Rose III2007-07-271-124/+274
| | | | | | | | | | | | | | | | | | 1. Switch from VStudio 2k3 to VStudio 2k5 2. All pdb files now will be placed as $(OutputDir)/$(ProjectName).pdb. This puts them alongside the binaries with the same base name as the binary. If you need to copy the results of your llvm build into another project's tree, this will simplify that process. 3. Recent files added to the tree were added to the proejects within the VStudio project 4. Project build dependency order fixed so that the build can take place in one pass. A generated file was not being built at the correct time, causing a build error in about half the projects until the build was run a second time. Note you will need flex and bison installed an in your path in order to build properly. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40557 91177308-0d34-0410-b5e6-96231b3b80d8
* Unbreak VC++ build.Jeff Cohen2007-03-051-5/+29
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34917 91177308-0d34-0410-b5e6-96231b3b80d8
* Unbreak VC++ build.Jeff Cohen2007-01-151-0/+3
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33242 91177308-0d34-0410-b5e6-96231b3b80d8
* Unbreak VC++ build.Jeff Cohen2006-11-051-6/+27
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31464 91177308-0d34-0410-b5e6-96231b3b80d8
* Keep Visual Studio happy.Jeff Cohen2006-05-031-3/+0
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28067 91177308-0d34-0410-b5e6-96231b3b80d8
* Keep Visual Studio informed.Jeff Cohen2006-04-231-0/+3
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27951 91177308-0d34-0410-b5e6-96231b3b80d8
* Get Visual Studio happy again.Jeff Cohen2006-03-241-0/+3
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27031 91177308-0d34-0410-b5e6-96231b3b80d8
* Add _CRT_SECURE_NO_DEPRECATE preprocessor symbol to make VS2005 happy.Jeff Cohen2006-01-301-2/+2
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25801 91177308-0d34-0410-b5e6-96231b3b80d8
* Add new files to Visual Studio.Jeff Cohen2006-01-241-0/+3
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25574 91177308-0d34-0410-b5e6-96231b3b80d8
* Visual Studio still has issues at being left out.Jeff Cohen2006-01-221-0/+6
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25507 91177308-0d34-0410-b5e6-96231b3b80d8
* Teach Visual Studio about new file.Jeff Cohen2006-01-041-0/+3
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25097 91177308-0d34-0410-b5e6-96231b3b80d8
* Add new files to Visual Studio.Jeff Cohen2005-12-221-0/+6
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24929 91177308-0d34-0410-b5e6-96231b3b80d8
* Turn on string pooling for smaller binaries.Jeff Cohen2005-12-171-0/+2
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24749 91177308-0d34-0410-b5e6-96231b3b80d8
* Keep Visual Studio up to date.Jeff Cohen2005-10-241-3/+0
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23964 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix VC++ build errors.Jeff Cohen2005-09-251-2/+2
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23431 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix more Visual Studio build problems.Jeff Cohen2005-09-101-0/+6
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23308 91177308-0d34-0410-b5e6-96231b3b80d8
* Add ElfWriter stuff to Visual StudioJeff Cohen2005-06-281-0/+6
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22304 91177308-0d34-0410-b5e6-96231b3b80d8