aboutsummaryrefslogtreecommitdiffstats
path: root/win32
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 hand-crafted VC++ build.Steve Naroff2009-02-021-0/+1
| | | | | | | | - Add PACKAGE_STRING definition to Windows config.h. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63539 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix PR3415 (infinite loop in EscapeAnalysis) byDuncan Sands2009-01-281-4/+0
| | | | | | | deleting the escape analysis pass. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63197 91177308-0d34-0410-b5e6-96231b3b80d8
* More updates to VC proj...Steve Naroff2009-01-262-62/+18
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63050 91177308-0d34-0410-b5e6-96231b3b80d8
* Update VS project files.snaroff2009-01-262-0/+24
| | | | 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-222-16/+12
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62807 91177308-0d34-0410-b5e6-96231b3b80d8
* Rename AddReadAttrs to FunctionAttrs, and teach it howDuncan Sands2008-12-311-1/+1
| | | | | | | | | to work out (in a very simplistic way) which function arguments (pointer arguments only) are only dereferenced and so do not escape. Mark such arguments 'nocapture'. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61525 91177308-0d34-0410-b5e6-96231b3b80d8
* Add files to VC++ projects.Steve Naroff2008-11-133-31/+39
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59262 91177308-0d34-0410-b5e6-96231b3b80d8
* Update VC++ project file.Steve Naroff2008-11-101-0/+4
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58997 91177308-0d34-0410-b5e6-96231b3b80d8
* remove unavailable clang projectTed Kremenek2008-11-081-6/+0
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58879 91177308-0d34-0410-b5e6-96231b3b80d8
* Update VC++ projects.Steve Naroff2008-11-063-36/+52
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58798 91177308-0d34-0410-b5e6-96231b3b80d8
* Add post-build event for clangDriver (to copy clang.exe into "dstroot").Steve Naroff2008-11-061-3/+9
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58783 91177308-0d34-0410-b5e6-96231b3b80d8
* Add a file to VC++ proj.Steve Naroff2008-10-241-13/+17
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58089 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
* Changes to make the Windows build work...Steve Naroff2008-10-232-113/+118
| | | | | | | | | - Add a file to the VC++ project. - Make sure the clang driver links against the Transforms library. - Incorporate changes from patch by Dan Gohman. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58048 91177308-0d34-0410-b5e6-96231b3b80d8
* Unbreak LLVM on the MSVC compiler:Argiris Kirtzidis2008-10-221-2/+3
| | | | | | | -Bring in int64_t for TableGen/Record.h and TableGen/TGLexer.h -Define strtoull git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57970 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 VC++ project fileSteve Naroff2008-10-052-4/+4
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57091 91177308-0d34-0410-b5e6-96231b3b80d8
* Add Attributes.cpp to the vcproj.Steve Naroff2008-09-241-0/+4
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56561 91177308-0d34-0410-b5e6-96231b3b80d8
* Update VS projects.Cédric Venet2008-09-202-2/+14
| | | | | | Change some class to struct for coherency. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56389 91177308-0d34-0410-b5e6-96231b3b80d8
* Remove the MarkModRef pass (use AddReadAttrs instead).Duncan Sands2008-09-191-4/+0
| | | | | | | | | Unfortunately this means removing one regression test of GlobalsModRef because I couldn't work out how to perform it without MarkModRef. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56342 91177308-0d34-0410-b5e6-96231b3b80d8
* Update VC++ project files.Argiris Kirtzidis2008-09-093-3/+31
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55985 91177308-0d34-0410-b5e6-96231b3b80d8
* Use additionnal include directory instead of ../ in #include.Cédric Venet2008-08-241-6/+6
| | | | | | Suggested by aKor. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55282 91177308-0d34-0410-b5e6-96231b3b80d8
* Updating VC++ project.Cédric Venet2008-08-243-25/+41
| | | | | | 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:Cédric Venet2008-08-177-86/+115
| | | | | | | | - 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.Cédric Venet2008-08-091-0/+8
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54580 91177308-0d34-0410-b5e6-96231b3b80d8
* Add libDriver.vcproj to solution file.Ted Kremenek2008-08-061-1/+11
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54424 91177308-0d34-0410-b5e6-96231b3b80d8
* Updated VC++ projectsCédric Venet2008-07-201-0/+8
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53809 91177308-0d34-0410-b5e6-96231b3b80d8
* This replaces all $(SolutionDir) macros with $(ProjectDir)..\ Chris Lattner2008-07-1430-155/+155
| | | | | | | 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.Cédric Venet2008-07-131-8/+0
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53521 91177308-0d34-0410-b5e6-96231b3b80d8
* VStudio x64 build fixes. Looks like the x64 projects got out of date and ↵Chuck Rose III2008-07-026-101/+87
| | | | | | this brings them up to code. I've built the project with these new vcproj files for win32 and x64 both debug and release. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53047 91177308-0d34-0410-b5e6-96231b3b80d8
* Adding some missing files to VStudio project files. Switching to use ↵Chuck Rose III2008-06-305-7/+21
| | | | | | generated llvmAsmParser.cpp/.h git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52935 91177308-0d34-0410-b5e6-96231b3b80d8
* Add loopVR files.Cédric Venet2008-06-301-0/+8
| | | | | | Users of VS need to manually force rebuild the X86 projet to use the last version of tablegen. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52894 91177308-0d34-0410-b5e6-96231b3b80d8
* Add an include file needed for VS.Cédric 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
* Update VS project files. The clang executable now depends on the LLVM ↵Ted Kremenek2008-06-262-165/+6
| | | | | | Analysis library. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52789 91177308-0d34-0410-b5e6-96231b3b80d8
* Updated VS build system. Patch provided by Cedric Venet:Ted Kremenek2008-06-202-9/+16
| | | | | | | | 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-2030-60/+60
| | | | | | | | | | 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-072-0/+12
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52077 91177308-0d34-0410-b5e6-96231b3b80d8
* update vc configure project for renaming of Steve Naroff2008-06-021-12/+12
| | | | | | | hash_map/hash_set/iterator to have a .h suffix. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51867 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix win32 when no bison is around, PR2331, patch by 'hume'.Chris Lattner2008-05-241-0/+2
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51539 91177308-0d34-0410-b5e6-96231b3b80d8
* "The two generated files in the AsmParser.vcproj are pointing to theChris Lattner2008-05-201-2/+2
| | | | | | | | | | wrong directory, this is the patch to fix it (also attached)." Patch by 'OvermindDL1' git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51323 91177308-0d34-0410-b5e6-96231b3b80d8
* Update VS project files (VS 2005) so that VS builds with TOT LLVM/clang.Ted Kremenek2008-05-193-182/+187
| | | | | | | Patch by Dmitri Makarov! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51237 91177308-0d34-0410-b5e6-96231b3b80d8
* Reverting r51100...I need to use VC++ 2005.Steve Naroff2008-05-151-11/+172
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51159 91177308-0d34-0410-b5e6-96231b3b80d8
* Revert 51067 check-in for now.Devang Patel2008-05-1531-229/+220
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51155 91177308-0d34-0410-b5e6-96231b3b80d8
* Upgrading clang VC++ solution to VC++ express 2008.Argiris Kirtzidis2008-05-141-172/+11
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51100 91177308-0d34-0410-b5e6-96231b3b80d8
* Adding missing files to Transforms and VMCore VC++ projects.Argiris Kirtzidis2008-05-142-0/+8
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51098 91177308-0d34-0410-b5e6-96231b3b80d8
* Update the Win32 project files, patch by Razvan Aciu!Chris Lattner2008-05-1331-220/+229
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51067 91177308-0d34-0410-b5e6-96231b3b80d8
* Update a couple VC++ project files.Steve Naroff2008-05-062-1/+31
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50780 91177308-0d34-0410-b5e6-96231b3b80d8
* VisualStudio project files updated. #include <algorithm> added to make ↵Chuck Rose III2008-04-151-0/+4
| | | | | | VisualStudio happy. Also had to undefine setjmp because of #include <csetjmp> turning setjmp into _setjmp in VisualStudio. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49743 91177308-0d34-0410-b5e6-96231b3b80d8